簡體   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