我今天正在学习 JavaScript。我在同一目录中创建了两个文件“a.js”“b.js”。
a.js代码
export default class User {
constructor(n) {
this._a = n;
}
}
export function f(n) {
console.log("Funct");
}
b.js代码:
import User, {f} from './a.js';
var u = new User("hey");
console.log(u, u._a);
f();
当我运行node b.js时,出现如下错误:
(node:47205) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. /Users/rammurthys/Documents/Angular Tute/JS/b.js:1 import User, {f} from './a.js'; ^^^^^^
SyntaxError: Cannot use import statement outside a module at wrapSafe (internal/modules/cjs/loader.js:1055:16) at Module._compile (internal/modules/cjs/loader.js:1103:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10) at Module.load (internal/modules/cjs/loader.js:988:32) at Function.Module._load (internal/modules/cjs/loader.js:896:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47
如果我运行node a.js,它会抛出如下错误。
(node:47321) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. /Users/rammurthys/Documents/Angular Tute/JS/a.js:1 export default class User { ^^^^^^
SyntaxError: Unexpected token 'export' at wrapSafe (internal/modules/cjs/loader.js:1055:16) at Module._compile (internal/modules/cjs/loader.js:1103:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:10) at Module.load (internal/modules/cjs/loader.js:988:32) at Function.Module._load (internal/modules/cjs/loader.js:896:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47
我使用的是 Node v13.5.0。 在 VS 代码上执行此操作。
请帮助我了解我缺少什么。谢谢
最佳答案
从 .js 重命名 .mjs 就成功了。谢谢@昆汀!
.mjs 是除了 require {} 以外的两种处理导出-导入 javascript 的方法之一。
详细说明: https://medium.com/passpill-project/files-with-mjs-extension-for-javascript-modules-ced195d7c84a
关于javascript - JavaScript 中的导出-导入 --- SyntaxError : Cannot use import statement outside a module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61061343/