【问题标题】:NPM error can't find present "es2015" - babel/node/reactNPM 错误找不到当前的“es2015” - babel/node/react
【发布时间】:2016-07-19 07:02:44
【问题描述】:

我在部署到 Heroku 时收到以下 NPM 错误。我的项目是mern stack

错误:找不到相对于目录“/app”的预设“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,其中包含以下内容:

require('babel-core/register');
require('babel-polyfill');
require('css-modules-require-hook');
require('./server/index');

我实际上遇到了 babel-polyfillcss-modules-require-hook 未找到或其他错误(我不记得很遗憾),但是当我将它们从我的 devDependencies 添加到我的依赖项时,它似乎自行解决了。确定哪些包实际上放在哪里是相当困难的(任何提示?)。我真的很感激一些方向!

【问题讨论】:

    标签: javascript node.js heroku npm babeljs


    【解决方案1】:

    据我了解,heroku 默认添加 --production 标志,这反过来不会安装您的开发依赖项。我会移动所有必要的依赖项来创建你的构建到 devDep 到依赖项。 或

    heroku config:set NPM_CONFIG_PRODUCTION=false
    

    【讨论】:

    • 老兄,你是 100% 正确的。当我将所有 devDependencies 添加到依赖项时,它可以工作。然而,这不是坏习惯吗?我如何区分生产中应该或不应该依赖的内容?感谢您的帮助!
    • 简单地说,运行应用需要依赖,开发应用只需要devDependencies。在您的情况下,heroku 在运行之前需要一些 devDependencies 来构建应用程序,因此您必须这样做。但是你仍然可以省略那些不用于创建构建的 devDependencies,比如用于测试的依赖项,例如 karma、protractor、linting 等
    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多