gpt4 book ai didi

javascript - 如何在 Node JS 中正确使用 import

转载 作者:行者123 更新时间:2023-12-05 06:01:04 25 4
gpt4 key购买 nike

我在 package.json 中添加了 "type": "module"。我的印象是 ES6 和 CommonJS 之间的转换不需要使用 import 的较新版本的 Node ,在本例中为 v16.0.0。

我需要更改什么才能使导入工作?


我在同一目录中有 3 个简单文件。

  1. package.json
  2. main.js
  3. 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() 动态或有条件地导入模块。有关详细信息,请参阅下面的链接。

链接:

https://v8.dev/features/dynamic-import

https://flaviocopes.com/javascript-dynamic-imports/

关于javascript - 如何在 Node JS 中正确使用 import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67348239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com