Nodejs5和babel中的“意外的令牌导入”?

在js文件中,我使用import代替require

import co from 'co';

并尝试由nodejs直接运行它,因为它说import是“运输功能”和支持,没有任何运行时标记(https://nodejs.org/en/docs/es6/),但是我遇到了一个错误

import co from 'co';
^^^^^^

SyntaxError: Unexpected token import

然后我试图用通天塔

npm install -g babel-core
npm install -g babel-cli
npm install babel-core //install to babel locally, is it necessary?

并由

babel-node js.js

仍然有相同的错误,意外的令牌导入?

我如何摆脱它?

GO小胖GO2020/03/23 21:41:45

对于仍然存在相同问题的用户,请按照以下步骤进行修复。

  1. 使用babel 7 @babel/core @babel/present-env @babel/node,依此类推...
  2. 添加.babelrc到项目的根目录,其中包含以下代码。
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ]
}
  1. 确保使用本地版本的bebel节点 ./node_modules/.bin/babel-node main.js

现在,您应该能够使用import/export语句了,祝您黑客愉快。

凯西里2020/03/23 21:41:45

@jovi您需要做的就是添加.babelrc文件,如下所示:

{
  "plugins": [
    "transform-strict-mode",
    "transform-es2015-modules-commonjs",
    "transform-es2015-spread",
    "transform-es2015-destructuring",
    "transform-es2015-parameters"
  ]
}

并使用npm将这些插件安装为devdependence。

然后再次尝试babel-node ***。js。希望这可以帮到你。

GilItachi2020/03/23 21:41:45

涉及以下步骤来解决此问题:

1)安装CLI和环境预设

$ npm install --save-dev babel-cli babel-preset-env

2)创建一个.babelrc文件

{
  "presets": ["env"]
}

3)在package.json中配置npm start

"scripts": {
    "start": "babel-node ./server/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  }

4)然后启动应用

$ npm start
阳光小哥2020/03/23 21:41:45

您必须使用babel-preset-envnodemon进行热重装。

然后创建具有以下内容的.babelrc文件:

{
  "presets": ["env"]
}

最后,在package.json中创建脚本:

"scripts": {
    "babel-node": "babel-node --presets=env",
    "start": "nodemon --exec npm run babel-node -- ./index.js",
    "build": "babel src -d dist"
  }

或者只是使用以下样板:

样板:node-es6

卡卡西2020/03/23 21:41:44
  • 安装->“ npm i --save-dev babel-cli babel-preset-es2015 babel-preset-stage-0”

package.json文件中的下一个添加脚本 “ start”:“ babel-node server.js”

    {
  "name": "node",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.18.2",
    "express": "^4.16.2",
    "lodash": "^4.17.4",
    "mongoose": "^5.0.1"
  },
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "babel-node server.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

并在根“ .babelrc”中为babel创建文件

    {
    "presets":[
        "es2015",
        "stage-0"
    ]
}

并在终端中运行npm start

飞云Jim2020/03/23 21:41:44

当前方法是使用:

npm install --save-dev babel-cli babel-preset-env

然后在 .babelrc

{
    "presets": ["env"]
}

此安装Babel支持最新版本的js(es2015及更高版本)查看babeljs

如下运行js文件时,不要忘记babel-nodepackage.json使用中添加到脚本中

"scripts": {
   "test": "mocha",
    //Add this line to your scripts
   "populate": "node_modules/babel-cli/bin/babel-node.js" 
},

现在您可以npm populate yourfile.js在终端内。

如果您正在运行Windows并且无法识别内部或外部命令的运行错误,请按如下所示使用脚本的节点infront

node node_modules/babel-cli/bin/babel-node.js

然后 npm run populate

宝儿理查德2020/03/23 21:41:44

babel-preset-es2015 现在已弃用,如果尝试使用Laurence的解决方案,则会收到警告。

要使它与Babel 6.24.1+一起使用,请babel-preset-env改用:

npm install babel-preset-env --save-dev

然后添加env到您的预设中.babelrc

{
  "presets": ["env"]
}

有关更多信息,请参见Babel文档

宝儿阿飞2020/03/23 21:41:44

From the babel 6 Release notes:

Since Babel is focusing on being a platform for JavaScript tooling and not an ES2015 transpiler, we’ve decided to make all of the plugins opt-in. This means when you install Babel it will no longer transpile your ES2015 code by default.

In my setup I installed the es2015 preset

npm install --save-dev babel-preset-es2015

or with yarn

yarn add babel-preset-es2015 --dev

and enabled the preset in my .babelrc

{
  "presets": ["es2015"]
}
LGil2020/03/23 21:41:44

如果您将预置用于本机,则它接受导入

npm i babel-preset-react-native --save-dev

并将其放在您的.babelrc文件中

{
  "presets": ["react-native"]
}

在您的项目根目录中

https://www.npmjs.com/package/babel-preset-react-native

小哥GOItachi2020/03/23 21:41:44

在实现模块之前,您可以使用Babel“翻译器”运行代码:

npm install --save babel-cli babel-preset-node6

接着

./node_modules/babel-cli/bin/babel-node.js --presets node6 ./your_script.js

如果您不想键入--presets node6,可以通过以下方式将其保存为.babelrc文件:

{
  "presets": [
    "node6"
  ]
}

参见https://www.npmjs.com/package/babel-preset-node6https://babeljs.io/docs/usage/cli/