javascript - JavaScript 中的导出-导入 --- SyntaxError : Cannot use import statement outside a module

标签 javascript node.js

我今天正在学习 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/

相关文章:

node.js - 访问多个 Node.js 文件的单个 JavaScript 对象?

javascript - 在闭包中修改变量

javascript - 从显示为 :none in JavaScript 的父 div 获取 ID

javascript - 如何在 CamanJS 中编辑远程图像

node.js - mocha 命令给出 ReferenceError : window is not defined

javascript - NodeJs : fs. 取消链接不会删除文件 [VS]

javascript - 使用 RESTAdapter 的后端验证始终为 "The adapter rejected the commit because it was invalid"

javascript - 如何在 vue 2 的 v-model 中动态绑定(bind)值

javascript - 如何使用 javascript 最有效地从该 html 字符串中提取内容? (最高性能 = 最低毫秒)

node.js - 验证应用程序和 API 微服务的服务