都是在同一目录下:
main.mjs
import {add, minus} from "./math"
console.log(add(10, 20));
console.log(minus(30, 20));
//mjs目前还在实验中。使用node main.mjs无法运行。
//需要这样:
math.mjs
function add(x, y) {
return x + y;
}
function minus(x, y) {
return x - y;
}
export {add, minus};
运行代码:node --experimental-modules main.mjs
报错:
(node:4200) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/esm/default_resolve.js:69
let url = moduleWrapResolve(specifier, parentURL);
^
Error: Cannot find module 'D:\workspace\WebstormProjects\2019\3\qdtest\es6\math' imported from D:\workspace\WebstormProjects\2019\3\qdtest\es6\main.mjs
at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:69:13)
at Loader.resolve (internal/modules/esm/loader.js:70:33)
at Loader.getModuleJob (internal/modules/esm/loader.js:143:40)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:43:40)
at link (internal/modules/esm/module_job.js:42:36)
import {add, minus} from "./math.mjs"
加扩展名
https://nodejs.org/api/esm.ht...
node 里 ES module,import 文件的时候必须包括扩展名。
ES module 里无法使用 require, exports, module.exports, __filename, __dirname