找不到模块“ babel-runtime / regenerator”本地导入与从NPM导入

时间:2019-01-17 11:18:36

标签: javascript node.js npm babeljs

我正在使用NPM模块,而babel配置却遇到了问题。我正在使用ES6,专门用于异步/等待,静态类方法和导入/导出。

起初,我遇到了一个常见问题:IdentityServer。因此,我将OAuth and openID作为开发人员依赖项进行安装,并将其添加到ReferenceError: regeneratorRuntime is not defined中的插件中。当需要使用路径名或通过npm作为依赖项的模块时,我遇到了错误babel-plugin-transform-runtime。看来要解决此问题,我必须要求.babelrc,但是,很多人似乎建议您在发布模块时不要这样做。

在查找了一些指南之后,我发现一个指南建议不要使用导入/导出,因此我尝试了该指南。在构建并在本地要求它后,它就可以工作了。但是,当发布到npm并作为依赖项导入时,我继续收到错误:Error: Cannot find module 'babel-runtime/regenerator'

babel-runtime
Error: Cannot find module 'babel-runtime/regenerator'

有人可以在发布npm模块时建议如何解决此问题/为使用babel提供一些建议吗?

2 个答案:

答案 0 :(得分:2)

根据文档,您需要两个模块:

  • 转换插件babel-plugin-transform-runtime(您可以使用 已有)

  • 以及实际填充或填充的实际运行时模块 否则在运行时(即在浏览器中)启用功能为babel-runtime

您可以像

一样将其添加为package.json中的(非开发)依赖项。
"babel-runtime": "^6.26.0"

或只是

npm i babel-runtime --save

其他人似乎对babel 6也有同样的问题:

https://github.com/nozzle/react-static/issues/685

答案 1 :(得分:2)

有一个关闭然后重新打开的解决方案,但是您是否考虑过使用Babel升级工具升级到Babel 7,然后从那里添加您需要的其他任何东西?

https://github.com/babel/babel-upgrade

我第一次使用它时对此表示怀疑,但是到目前为止,每次遇到这些“找不到模块babel插件”错误时,它都像一个梦一样有效。