简介:
报错如下:
import { xxx } from "xxx";
^
SyntaxError: Unexpected token {
at Module._compile (internal/modules/cjs/loader.js:749:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:816:10)
at Module.load (internal/modules/cjs/loader.js:672:32)
at tryModuleLoad (internal/modules/cjs/loader.js:612:12)
at Function.Module._load (internal/modules/cjs/loader.js:604:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:868:12)
at internal/main/run_main_module.js:21:11
经过多次度娘!!!
找到原因:因为本地的node.js不支持部分es6的原因。
解决方法如下:
为了让 Node.js 支持 ES6 的语法, 需要使用 Babel。
(直接不要es6语法也可以解决了,把import换成require)
度娘说的先检查一下当前 node.js 对 es6 的支持情况
调出cmd就是干
npm install -g es-checker
先安装 es-checker
安装好后输入es-checker
果真发现我的不支持import (我的支持92%...????)
安装 babel
首先新建一个工作目录叫nodejs-project,然后创建一个 package.json 的文件,内容为:
{
"name": "nodejs-project",
"version": "1.0.0",
"devDependencies": {}
}
然后在该工作目录下(/nodejs-project)打开命令行,执行以下命令安装 babel-cli:
npm install babel-cli --save
再安装一个全局的 babel-cli:
npm install babel-cli -g
接着在该工作目录创建一个名字为 .babelrc 的文件, 文件内容入如下:
{
"presets": [
"es2015"
],
"plugins": []
}
最后在工作目录,执行以下命令安装 babel-preset-es2015:
npm install babel-preset-es2015 --save
安装上述时遇到
我的解决是:
清除npm编译的一些缓存:
输入命令:npm cache clean --force
然后再安装npm install babel-preset-es2015 --save
最终测试 es6
node 文件名
改用babel-node 文件名
执行
//callback.js
import { readFileSync } from "fs";//当然你的在工作文件夹下下载有这个 fs模块
var data = readFileSync('input.txt');
console.log(data.toString());
console.log("程序执行结束!");
//input.txt
我是谁?我在哪?我在干什么?
还是觉得支持92%的我应该换用require (⊙﹏⊙)