为什么此导入 d3 scale 语句会触发'SyntaxError: Unexpected token import'



我有一个非常简单的代码在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尺度'
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)

我根本不希望这个错误。进口语句对我来说看起来很正常。

这是软件包。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 '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))

同一文件夹中的.babelrc中有一个only条目。它将scale_words.js排除在被执行为ES6文件的情况下。

最新更新