首页 > 解决方案 > JavaScript 模块导入/导出

问题描述

我刚刚了解了 JS 中的模块。我正在尝试在我的机器上完成这项工作,但我仍然有几个问题,因为它只在某些情况下有效。

我已经看过并尝试过使用以下语法的 youtube 视频中的示例:

// number.js
export const num = 5;

// main.js
import { num } from './number.js'


//This throws the following error:

import { num } from './number.js';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1072:16)
    at Module._compile (internal/modules/cjs/loader.js:1122:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47

就我而言,它仅在我这样做时才有效:

// number.js
const num = 10;
module.exports =  { num };

// main.js
const num = require('./number.js');

谁能启发我并告诉我有什么区别,如果我这样做在技术上是正确的?

提前致谢!

标签: javascriptimportmoduleexport

解决方案


module.exports() 函数是 nodejs 附带的默认函数,是 requirejs 模块的一部分。另一方面,导入和导出更多的是 ES6 及更高版本的功能,我相信您需要 webpack 模块或 babel 模块将其转换为浏览器渲染引擎在运行时可以理解的正常 ES5 语法。这是上述两个模块的链接。

webpack - https://webpack.js.org/

通天塔 - https://babeljs.io/


推荐阅读