“意外的标记导入”在Nodejs5和通天塔?“意外的标记导入”在Nodejs5和通天塔?(“unex

2019-05-13 05:59发布

在js文件,我用进口的,而不是要求

import co from 'co';

并试图通过直接运行的NodeJS它,因为它说,进口是“航运功能”和支持,没有任何运行标志( 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

仍然得到了同样的错误,意外的标记进口?

我怎么能摆脱它?

Answer 1:

从巴贝尔6发行说明:

由于巴贝尔重点是对JavaScript的工具,而不是一个ES2015 transpiler一个平台,我们已经决定把所有的插件选入的。 当您安装巴贝尔将不再默认transpile您ES2015代码这意味着。

在我的设置我安装预设ES2015

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

或纱

yarn add babel-preset-es2015 --dev

并启用预设在我.babelrc

{
  "presets": ["es2015"]
}


Answer 2:

直到模块实现的,你可以使用通天塔“transpiler”来运行你的代码:

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-node6和https://babeljs.io/docs/usage/cli/



Answer 3:

  1. 安装软件包: babel-corebabel-polyfillbabel-preset-es2015
  2. 创建.babelrc与内容: { "presets": ["es2015"] }
  3. 不要把import的语句在主入口文件,用另一个文件,例如: app.js和你的主项文件应要求babel-core/registerbabel-polyfill ,使巴贝尔在第一个地方单独工作先天下之忧。 然后,你可以要求app.js其中import声明。

例:

index.js

require('babel-core/register');
require('babel-polyfill');
require('./app');

app.js

import co from 'co';

它应与工作node index.js



Answer 4:

babel-preset-es2015现在已经过时,如果您尝试使用劳伦斯的解决方案,你会得到一个警告。

为了得到这个工作与巴贝尔6.24.1+,用babel-preset-env代替:

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

然后加入env到您的预设.babelrc

{
  "presets": ["env"]
}

见巴贝尔文档获取更多信息。



Answer 5:

这可能是你正在运行未编译的文件。 让我们开始清理!

在你的工作目录中创建:

  • 两个文件夹。 一个预编译ES2015代码。 另一类为巴贝尔的输出。 我们将分别命名为“SRC”和“LIB”。
  • 用下面的物体A的package.json文件:

     { "scripts": { "transpile-es2015": "babel src -d lib" }, "devDependencies": { "babel-cli": "^6.18.0", "babel-preset-latest": "^6.16.0" } } 
  • 名为“.babelrc”具有以下指令的文件: {"presets": ["latest"]}

  • 最后,编写测试代码在你的src / index.js文件。 你的情况: import co from 'co'.

通过您的控制台:

  • 安装你的包: npm install
  • 如,已经在我们的package.json指定用-d(又名--out-DIR)标志Transpile源目录到你的输出目录: npm run transpile-es2015
  • 从输出目录,运行你的代码! node lib/index.js


Answer 6:

如果你使用的反应本地预设它接受进口

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

并把它放在你的.babelrc文件中

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

在你的项目的根目录

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



Answer 7:

目前的方法是使用:

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

然后在.babelrc

{
    "presets": ["env"]
}

此安装JS的最新版本(ES2015及以后)巴贝尔支持退房babeljs

不要忘记添加babel-node到脚本里面package.json运行您的JS文件时,按如下方式使用。

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

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

如果您运行的是Windows和运行错误内部或外部命令无法识别,使用节点盈脚本如下

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

然后npm run populate



Answer 8:

  • 安装 - > “NPM我--save-dev的巴别-CLI巴别预置-ES2015巴别预置级-0”

接下来在的package.json文件中添加脚本“开始”:“巴别塔节点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”

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

并运行在NPM启动终端



Answer 9:

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

1)安装CLI和env预设

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

2)创建一个.babelrc文件

{
  "presets": ["env"]
}

3)中的package.json配置NPM启动

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

4)然后启动应用程序

$ npm start


Answer 10:

@jovi所有你需要做的就是添加.babelrc文件是这样的:

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

并与故宫devdependences安装这些插件。

然后尝试通天节点***。JS一次。 希望这可以帮到你。



Answer 11:

您必须使用通天预设-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"
  }

或使用此样板:

样板:节点ES6



Answer 12:

我已经做了克服这个问题下面(ex.js脚本)

问题

$ cat ex.js
import { Stack } from 'es-collections';
console.log("Successfully Imported");

$ node ex.js
/Users/nsaboo/ex.js:1
(function (exports, require, module, __filename, __dirname) { import { Stack } from 'es-collections';
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:152:10)
    at Module._compile (module.js:624:28)
    at Object.Module._extensions..js (module.js:671:10)
    at Module.load (module.js:573:32)
    at tryModuleLoad (module.js:513:12)
    at Function.Module._load (module.js:505:3)
    at Function.Module.runMain (module.js:701:10)
    at startup (bootstrap_node.js:194:16)
    at bootstrap_node.js:618:3

# npm package installation
npm install --save-dev babel-preset-env babel-cli es-collections

# .babelrc setup
$ cat .babelrc
{
  "presets": [
    ["env", {
      "targets": {
        "node": "current"
      }
    }]
  ]
}

# execution with node
$ npx babel ex.js --out-file ex-new.js
$ node ex-new.js
Successfully Imported

# or execution with babel-node
$ babel-node ex.js
Successfully Imported


Answer 13:

在您的应用程序,您必须声明你的require()模块,不使用“进口”关键字:

const app = require("example_dependency");

然后,创建一个.babelrc文件:

{
"presets": [ 
    ["es2015", { "modules": false }]
]
}

然后,在你gulpfile,一定要申报您的require()模块:

var gulp = require("gulp");


文章来源: “unexpected token import” in Nodejs5 and babel?