2
當我部署到Heroku時,出現以下NPM錯誤。我的項目是mern stack。NPM錯誤找不到「es2015」 - babel/node/react
錯誤:無法找到預設「ES2015」相對於目錄「/應用程序」
包似乎被正確安裝,我已經建立了一個正確的文件.babelrc和除了父目錄不同之外,本地和遠程相比沒有什麼不同。在Heroku上,父目錄顯然是「app」。這是我的NPM包:
"dependencies": {
"babel-core": "^6.7.2",
"babel-polyfill": "^6.7.4",
"body-parser": "~1.12.0",
"cookie-parser": "~1.3.4",
"css-modules-require-hook": "^4.0.0",
"debug": "~2.1.1",
"express": "~4.12.2",
"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-redux": "^4.4.1",
"react-router": "^2.0.1",
"redux": "^3.3.1",
"serve-favicon": "~2.2.0",
"webpack": "^1.12.13"
},
"devDependencies": {
"babel-eslint": "^5.0.0",
"babel-loader": "^6.2.4",
"babel-plugin-react-transform": "^2.0.2",
"babel-polyfill": "^6.7.4",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babel-preset-react-hmre": "^1.1.1",
"babel-register": "^6.7.2",
"css-modules-require-hook": "^4.0.0",
"redux-devtools": "^3.1.1",
"redux-devtools-dock-monitor": "^1.1.0",
"redux-devtools-log-monitor": "^1.0.4",
"webpack-dev-middleware": "^1.5.1",
"webpack-hot-middleware": "^2.10.0"
}
此外,npm start
運行index.js它由以下部分組成:與babel-polyfill
和css-modules-require-hook
require('babel-core/register');
require('babel-polyfill');
require('css-modules-require-hook');
require('./server/index');
我其實是越來越錯誤沒有被發現或某事(我不記得不幸),但是當我將它們從devDependencies添加到我的依賴項時,它似乎自行解決了。確定要在哪裏放置哪些包(任何提示?)是相當困難的。我真的很感激一些方向!
老兄,你100%正確。當我將所有devDependencies添加到它的依賴關係時,它就可以工作。但是,這不是不好的做法嗎?我怎樣才能區分生產中應該或不應該依賴的東西?謝謝你的幫助! –
簡單地說就是運行應用程序需要依賴關係,devDependencies只需要開發應用程序。在你的情況下,heroku需要一些devDependencies在運行之前構建應用程序,因此你必須這樣做。但是你仍然可以忽略不用於創建構建的devDependencies,比如用於測試例如業力,量角器,短缺等的依賴項 –