node.js的import在vscode报错经历

简介:

报错如下:
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 (⊙﹏⊙)

你可能感兴趣的:(node.js的import在vscode报错经历)