导入node.js模块-SyntaxError:意外的标识符

时间:2019-03-05 12:23:25

标签: node.js

我正在尝试进行以下导入

import  ResClient from 'resclient';

结果

/home/arran/WebstormProjects/untitled1/app.js:2
import  ResClient from 'resclient';
        ^^^^^^^^^

SyntaxError: Unexpected identifier
    at new Script (vm.js:85:7)
    at createScript (vm.js:266:10)
    at Object.runInThisContext (vm.js:314:10)
    at Module._compile (internal/modules/cjs/loader.js:698:28)
    at Object.Module._extensions..js 
(internal/modules/cjs/loader.js:749:10)
    at Module.load (internal/modules/cjs/loader.js:630:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
    at Function.Module._load (internal/modules/cjs/loader.js:562:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
  • 模块文档位于here中,并在示例中进行了完全相同的导入。
  • 我已经全局安装了模块。

    npm list -g | grep resclient
    └─┬ resclient@2.0.2
    
  • 我正在使用以下节点版本

     $node -v
     v11.10.1
    

我还看到了有关此错误的其他文章。例如here,但这是使用客户端JavaScript而不是节点的基于浏览器的问题。 我是一个新手节点,所以无论基础如何,都希望能对它有所指点。

2 个答案:

答案 0 :(得分:4)

对于节点12,您可以在package.json中将属性type添加为

"type": "module"

也不要忘记运行带有实验模块标志node --experimental-modules youapp.js

的节点

答案 1 :(得分:0)

我也面临着同样的问题。这是我固定的方法。

我首先使用以下命令更新了节点及其包管理器版本:

npm install node@latest -g

npm install npm@latest -g

这样做之后,我转到package.json文件,并在scripts属性之前添加了以下行:

"type": "module",

最后,我回过头来尝试使用node app.js运行我的代码,但是直到使用以下命令,该代码才起作用:

node --experimental-modules app.js

在您身边,将app.js替换为您的索引文件。希望它也对你有用

很好的编码