繁体   English   中英

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

[英]Cannot find module 'babel-runtime/regenerator' Import locally vs Import from NPM

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

首先,我遇到了以下常见问题: ReferenceError: regeneratorRuntime is not defined 因此,我将babel-plugin-transform-runtime为dev依赖项,并将其添加到.babelrc的插件中。 当需要使用路径名或通过npm作为依赖项的模块时,我遇到错误Error: Cannot find module 'babel-runtime/regenerator' 看来要解决此问题,我必须需要babel-runtime ,但是,很多人似乎建议您在发布模块时不要这样做。

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

  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-eslint": "^10.0.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "eslint": "^5.12.0",
    "eslint-config-prettier": "^3.4.0",
    "eslint-config-standard": "^12.0.0",
    "eslint-plugin-import": "^2.14.0",
    "eslint-plugin-node": "^8.0.1",
    "eslint-plugin-promise": "^4.0.1",
    "eslint-plugin-standard": "^4.0.0",
    "husky": "^1.3.1",
    "jest": "^23.6.0",
    "lint-staged": "^8.1.0",
    "nodemon": "^1.18.9",
    "prettier": "^1.15.3",
    "rimraf": "^2.6.3"
  },
{
  "presets": [
    "env"
  ],
  plugins: [
    "babel-plugin-transform-runtime"
  ]
}

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

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

  • 转换插件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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM