为什么这个导入d3-scale语句触发'SyntaxError:意外的令牌导入'

时间:2017-12-15 00:31:07

标签: npm ecmascript-6 babel

我有一个用es6

编写的非常简单的代码
import { scale } from 'd3-scale';

const a = scale.scalePow().domain([0, 20]).range([0, 1, 2, 30, 560, 1]);

console.log(a(1));

依赖性'd3-scale'可以通过

安装
npm install d3-scale --save

我运行以下命令来执行脚本:

npx babel-node scale_words.js 

我收到了这个错误:

/Users/antkong/scale_series.js:1
(function (exports, require, module, __filename, __dirname) { import { scale } from 'd3-scale';
                                                              ^^^^^^

SyntaxError: Unexpected token import
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:588:28)
    at loader (/Users/antkong/node_modules/babel-register/lib/node.js:144:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/antkong/node_modules/babel-register/lib/node.js:154:7)
    at Module.load (module.js:545:32)
    at tryModuleLoad (module.js:508:12)
    at Function.Module._load (module.js:500:3)
    at Function.Module.runMain (module.js:665:10)
    at Object.<anonymous> (/Users/antkong/node_modules/babel-cli/lib/_babel-node.js:154:22)

我根本不期待这个错误。 import语句看起来很正常。

这是package.json

{
  "name": "test",
  "description": "Test",
  "version": "0.1.0",
  "dependencies": {
    "d3-scale": "^1.0.7"
  },
  "devDependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "babel-preset-stage-0": "^6.24.1",
    "jsdom": "^11.3.0",
    "jsdom-global": "^3.0.2"
  }
}

我正在使用

node v8.7.0

npm 5.5.1

我尝试重新运行npm install,但它无法解决问题。在同一文件夹中,我有另一个带有这些import语句的脚本

import 'jsdom-global/register';
import 'canvas';
import { EventEmitter } from 'events';

它可以在npx babel-node正常

的情况下运行

如果我使用替代语法,它可以毫无问题地运行

var d3Scale = require("d3-scale")
var a = d3Scale.scalePow().domain([0, 20]).range([0, 1, 2, 30, 560, 1]);
;

console.log(a(1))

1 个答案:

答案 0 :(得分:0)

同一文件夹中的only中有.babelrc个条目。它排除scale_words.js作为es6文件执行。