Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.4.1 版本依赖 @babel/runtime 7.0.0-beta46 导致可能存在的 babel helper 函数 module not found 问题 #1980

Closed
hijiangtao opened this issue Dec 11, 2018 · 8 comments

Comments

@hijiangtao
Copy link

hijiangtao commented Dec 11, 2018

首先想问下 2.4.1 往后的版本最近有正式发布的计划么,由于 2.4.1 版本 package.json 中写死了 @babel/runtime 版本为 7.0.0-beta46, 而 @babel/runtime 从 7.0.0-beta56 开始重命名了 es6 文件夹(详见 babel/babel#8266 (comment) ),于是导致一个问题:

如果引用的包对 @babel/runtime 的依赖是 ^7.0.0 那么实际安装的版本便会是 7.0.0及以后(现在是 7.2.0)版本,而 dva2.4.1 依赖的是 7.0.0-beta46,这样就会导致其他依赖最新 babel 的包可能找不到模块(如果模块开发者依赖的是最新 babel 版本,。并在代码中写了类似的 helper import 代码),类似:

Module not found: 
Can't resolve '@babel/runtime/helpers/esm/assertThisInitialized' in 
'/site/node_modules/_luma.gl@6.3.1@luma.gl/dist/esm/webgl'

由于让其他依赖库回滚对 babel helper 写法是不现实且不推荐的,且我看 dva 2.5.0 beta 已经 merge 了相关依赖(详见 #1908 ),所以如果 dva 能尽快更新该版本至正式版,会是当下我认为最好的解决方案。

@stale
Copy link

stale bot commented Mar 14, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix label Mar 14, 2019
@xiamu14
Copy link

xiamu14 commented Mar 16, 2019

我在 2.4.1 也遇到了这个问题, 官方是不打算处理了吗?

@stale stale bot removed the wontfix label Mar 16, 2019
@sydboys
Copy link

sydboys commented Mar 16, 2019

折腾了很久,最后简单粗暴的处理
npm i @babel/runtime-corejs2 -D
npm i @babel/plugin-transform-runtime -D
然后在webpack的配置中设置
alias: '@babel/runtime': '@babel/runtime-corejs2'
babel配置中启用插件“@babel/plugin-transform-runtime”

最新的@babel/runtime 已经删除了core-js的包

当然webpack 别设置resolve.modules参数也可以不需要按上面那个设置

@wangweida
Copy link

这个问题不管了吗?这架子三天两头打包就报错 真是服了

@sorrycc
Copy link
Member

sorrycc commented Mar 17, 2019

参考 #2032 (comment) 解决,相同的问题。

@sorrycc sorrycc closed this as completed Mar 17, 2019
@104gogo
Copy link

104gogo commented Mar 19, 2019

还可以在需要的项目里面安装最新的 @babel/runtime 来解决这个问题。避免 dva 以后发布新版本了,resolve.alias 的设置没意义。
最后想知道,dva 什么把 beta 版本正式发布了?

@cszo
Copy link

cszo commented Jul 23, 2019

折腾了很久,最后简单粗暴的处理
npm i @babel/runtime-corejs2 -D
npm i @babel/plugin-transform-runtime -D
然后在webpack的配置中设置
alias: '@babel/runtime': '@babel/runtime-corejs2'
babel配置中启用插件“@babel/plugin-transform-runtime”

最新的@babel/runtime 已经删除了core-js的包

当然webpack 别设置resolve.modules参数也可以不需要按上面那个设置
只用了dva-core+自己配置webpack 遇到这个问题折腾了两天 整个babel文档都研究了一遍 现在解决了 感谢大佬

@cszo
Copy link

cszo commented Jul 24, 2019

还可以在需要的项目里面安装最新的 @babel/runtime 来解决这个问题。避免 dva 以后发布新版本了,resolve.alias 的设置没意义。
最后想知道,dva 什么把 beta 版本正式发布了?
我的项目中只使用dva-core 1.4.0 这个最新版的是一年前了。。。不打算单独维护了吧。。
最新版的@babel/runtime 把core-js删了 同时目录结构helpers/esm 而之前7.0.0版本@babel/runtime的还有core-js但是又是helpers/es6 用了这个虽然dva-core没问题了,但是又导致很多新版本的其他库又报错。所以只能用@babel/runtime-corejs2 又有core-js又是helpers/esm。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants