我可以在浏览器文件(someBrowserFile.js)和node.js后端文件(someBackendFile.js)中包含一些javascript文件(test.js位于公共文件夹中)吗:
function use(name) {
console.log("I can use" + name);
}
import * as lib from './test.js';
lib.use("test module");
var lib = require("./public/test.js");
lib.use("test module");
因为对于 Node,我必须使用“module.exports”,而对于 ES6,我必须使用“export {use};”。如果我使用 ES6 语法节点将抛出 SyntaxError,如果我使用“module.exports”,那么它将无法在浏览器中工作。 那么是否有通用语法可供使用,以便我可以将我的文件包含在浏览器和节点中。
直接说,不。
但我们通常使用允许这样做的捆绑器和预处理器。查看 Webpack 或 Browserify,它们通常与 BabelJS 一起使用。
要在 NodeJs 中使用 ES6,你必须尝试使用“babel”或其他类型的解释器
对于现在看到此内容的任何人,您可以在 package.json 中使用“type”=“module”来在 Node 中使用 es6 导入