Node.js 意外保留字:导入-网页包、Babel、节点、React

Node.js 意外保留字:导入-网页包、Babel、节点、React,node.js,reactjs,babeljs,Node.js,Reactjs,Babeljs,在将SSR添加到我的应用程序后,我在服务器的index.js文件中使用了一些ES6,现在我在让它再次在Heroku上运行时遇到了问题 我做了很多研究,了解到使用ES6需要babel来传输服务器文件,但我能找到的几乎所有人的建议通常都是需要.babelrc文件,或者指定/安装预设,但据我所知,我已经这样做了 我发现我越是尝试解决这个问题,我就越感到困惑,所以我想在这里进行一些讨论:)谢谢大家(完整代码:) Heroku错误 2017-05-08T14:35:04.470656+00:00 app[

在将SSR添加到我的应用程序后,我在服务器的index.js文件中使用了一些ES6,现在我在让它再次在Heroku上运行时遇到了问题

我做了很多研究,了解到使用ES6需要babel来传输服务器文件,但我能找到的几乎所有人的建议通常都是需要.babelrc文件,或者指定/安装预设,但据我所知,我已经这样做了

我发现我越是尝试解决这个问题,我就越感到困惑,所以我想在这里进行一些讨论:)谢谢大家(完整代码:)

Heroku错误

2017-05-08T14:35:04.470656+00:00 app[web.1]: [32m[nodemon] starting `babel-node index.js --presets react,es2015`[39m
2017-05-08T14:35:04.545063+00:00 app[web.1]: You have mistakenly installed the `babel` package, which is a no-op in Babel 6.
2017-05-08T14:35:04.545069+00:00 app[web.1]: Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.
2017-05-08T14:35:04.545070+00:00 app[web.1]: 
2017-05-08T14:35:04.545071+00:00 app[web.1]:     npm uninstall -g babel
2017-05-08T14:35:04.545072+00:00 app[web.1]:     npm install --save-dev babel-cli
2017-05-08T14:35:04.545072+00:00 app[web.1]: 
2017-05-08T14:35:04.545073+00:00 app[web.1]: See http://babeljs.io/docs/usage/cli/ for setup instructions.
2017-05-08T14:35:04.554946+00:00 app[web.1]: [31m[nodemon] app crashed - waiting for file changes before starting...[39m
const path = require('path');
module.exports = {
  // the entry file for the bundle
  entry: path.join(__dirname, '/client/src/app.js'),

  // the bundle file we will get in the result
  output: {
    path: path.join(__dirname, '/client/dist/js'),
    filename: 'app.js',
  },

  module: {

    // apply loaders to files that meet given conditions
    loaders: [{
      test: /\.js$/,
      include: path.join(__dirname, '/client/src'),
      loader: 'babel-loader',
      query: {
        presets: ["react", "es2015"]
      }
    }],
  },
  resolve: {
    extensions: ['.js', '.jsx']
  },
  // start Webpack in a watch mode, so Webpack will rebuild the bundle on changes
  watch: false
};
在以下脚本中,“npm run start”在本地运行良好,但在上传到Heroku时失败。它抱怨我需要使用“babel cli”包,而不是我已经在使用的“babel”。。(与“启动开发”相同)

package.json

{
  "name": "react-authentication",
  "version": "1.0.0",
  "engines": {
    "node": "4.4.3",
    "npm": "4.2.0"
  },
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon --use-strict index.js",
    "bundle": "webpack",
    "start-old": "node index.js",
    "postinstall": "webpack -p",
    "start-dev": "babel-node index.js --presets react,es2015",
    "start": "nodemon index.js --exec babel-node --presets react,es2015",
    "build": "babel lib -d dist --presets react,es2015",
    "serve": "node dist/index.js",
    "prod": "NODE_ENV=production node index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.15.3",
    "babel-cli": "^6.24.1",
    "babel-core": "^6.23.1",
    "babel-loader": "^6.3.2",
    "babel-preset-es2015": "^6.22.0",
    "babel-preset-react": "^6.23.0",
    "babel-register": "^6.24.1",
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.16.1",
    "client-sessions": "^0.7.0",
    "cookie-parser": "^1.4.3",
    "express": "^4.14.1",
    "express-session": "^1.15.1",
    "fs": "0.0.1-security",
    "jsonwebtoken": "^7.3.0",
    "material-ui": "^0.17.0",
    "mongoose": "^4.8.3",
    "nodemon": "^1.11.0",
    "passport": "^0.3.2",
    "passport-facebook": "^2.1.1",
    "passport-local": "^1.0.0",
    "path": "^0.12.7",
    "react": "^15.4.2",
    "react-dom": "^15.4.2",
    "react-redux": "^5.0.3",
    "react-router": "^3.0.2",
    "react-tap-event-plugin": "^2.0.1",
    "redux": "^3.6.0",
    "redux-promise": "^0.5.3",
    "redux-thunk": "^2.2.0",
    "validator": "^6.2.1",
    "webpack": "^2.2.1"
  },
  "devDependencies": {
    "babel-core": "^6.24.1",
    "babel-loader": "^6.4.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "nodemon": "^1.11.0",
    "webpack": "^2.2.1"
  }
}
webpack.config.js

2017-05-08T14:35:04.470656+00:00 app[web.1]: [32m[nodemon] starting `babel-node index.js --presets react,es2015`[39m
2017-05-08T14:35:04.545063+00:00 app[web.1]: You have mistakenly installed the `babel` package, which is a no-op in Babel 6.
2017-05-08T14:35:04.545069+00:00 app[web.1]: Babel's CLI commands have been moved from the `babel` package to the `babel-cli` package.
2017-05-08T14:35:04.545070+00:00 app[web.1]: 
2017-05-08T14:35:04.545071+00:00 app[web.1]:     npm uninstall -g babel
2017-05-08T14:35:04.545072+00:00 app[web.1]:     npm install --save-dev babel-cli
2017-05-08T14:35:04.545072+00:00 app[web.1]: 
2017-05-08T14:35:04.545073+00:00 app[web.1]: See http://babeljs.io/docs/usage/cli/ for setup instructions.
2017-05-08T14:35:04.554946+00:00 app[web.1]: [31m[nodemon] app crashed - waiting for file changes before starting...[39m
const path = require('path');
module.exports = {
  // the entry file for the bundle
  entry: path.join(__dirname, '/client/src/app.js'),

  // the bundle file we will get in the result
  output: {
    path: path.join(__dirname, '/client/dist/js'),
    filename: 'app.js',
  },

  module: {

    // apply loaders to files that meet given conditions
    loaders: [{
      test: /\.js$/,
      include: path.join(__dirname, '/client/src'),
      loader: 'babel-loader',
      query: {
        presets: ["react", "es2015"]
      }
    }],
  },
  resolve: {
    extensions: ['.js', '.jsx']
  },
  // start Webpack in a watch mode, so Webpack will rebuild the bundle on changes
  watch: false
};
.babelrc

{
   "presets": ["react", "es2015"]
}

尝试将开始脚本更改为“node server.js”而不是nodemon。

尝试将开始脚本更改为“node server.js”而不是nodemon。

嗨,吉米,谢谢,我也尝试过,但同样失败error@trm313我到处找了很多,但什么也没找到。您在哪里看到您发布图像的Heroku错误?当您尝试将代码推送到heroku master时,是否会出现这些错误?尝试删除“-exec babel node--presets react,es2015”,看看这是否有什么不同,否则请转到并查看构建日志,看看是否有任何发现!谢谢你四处看看。我发现,即使我从开始序列中去掉babel命令(包括预设标志),我也无法让我的应用程序在本地运行。这是当我收到“意外保留字:导入”错误时,但是,我无法让heroku接受babel命令。当我尝试的时候,我得到了关于不再使用“巴别塔”的巴别塔错误。我正在查看的Heroku日志显示巴别塔错误来自。活动页面显示成功的构建,但随后应用程序进入崩溃状态state@trm313好的,如果你查看node_modules文件夹,你会看到babel文件夹吗?尝试将此行添加到网页配置文件中“loader:‘babel loader’”上方的行:exclude:/node_modules/选中了node_modules文件夹-没有‘babel’文件夹。我在webpack.config文件中添加了“excude:/node\u modules/”行,并再次尝试,但结果相同。Hi Jimmy,谢谢,我也尝试过,但同样失败error@trm313我到处找了很多,但什么也没找到。您在哪里看到您发布图像的Heroku错误?当您尝试将代码推送到heroku master时,是否会出现这些错误?尝试删除“-exec babel node--presets react,es2015”,看看这是否有什么不同,否则请转到并查看构建日志,看看是否有任何发现!谢谢你四处看看。我发现,即使我从开始序列中去掉babel命令(包括预设标志),我也无法让我的应用程序在本地运行。这是当我收到“意外保留字:导入”错误时,但是,我无法让heroku接受babel命令。当我尝试的时候,我得到了关于不再使用“巴别塔”的巴别塔错误。我正在查看的Heroku日志显示巴别塔错误来自。活动页面显示成功的构建,但随后应用程序进入崩溃状态state@trm313好的,如果你查看node_modules文件夹,你会看到babel文件夹吗?尝试将此行添加到网页配置文件中“loader:‘babel loader’”上方的行:exclude:/node_modules/选中了node_modules文件夹-没有‘babel’文件夹。我在webpack.config文件中添加了“excude:/node\u modules/”行,并再次尝试,但结果相同