我在 package.json 中添加了 "type": "module"。我的印象是 ES6 和 CommonJS 之间的转换不需要使用 import 的较新版本的 Node ,在本例中为 v16.0.0。
我需要更改什么才能使导入工作?
我在同一目录中有 3 个简单文件。
- package.json
- main.js
- Utility.js
包.json
{
"name": "node_template",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"type": "module"
}
实用程序.js
'use strict';
class Utility {
constructor() {
}
}
export { Utility };
主要.js
"use strict";
(async ()=>{
import { Utility } from './Utility.js';
var utility = new Utility();
console.log( "Main" );
})();
当我运行“node main.js”时,出现以下错误:
node -v
v16.0.0
node main.js
main.js:4
import { Utility } from './Utility.js';
^
SyntaxError: Unexpected token '{'
←[90m at Loader.moduleStrategy (node:internal/modules/esm/translators:147:18)
←[39m
←[90m at async link (node:internal/modules/esm/module_job:64:21)←[39m
最佳答案
主要.js
(async () => {
let { Utility } = await import('./Utility.js');
let utility = new Utility();
console.log('main');
})();
注意: 您使用的 import 语句只能在模块的顶层使用。但是您可以使用动态导入 - import() 动态或有条件地导入模块。有关详细信息,请参阅下面的链接。
链接:
关于javascript - 如何在 Node JS 中正确使用 import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67348239/