Babel 将 'import' 转换为 'require',但 'require 在 ecma5 中不可用
Babel transpiles 'import' to 'require', but 'require isn't useable in ecma5
据我了解,使用 Babel 允许您通过转译在 ecma5 环境中使用 ecma6 javascript。然而,当我使用 'import' 时,'import' 被转译为 'require'。 'require' 不是 ecma5,需要库 'require.js'。因此,您不能在没有附加依赖项的情况下使用 'import/ export',对吗?
是的,Babel 只是为了翻译新的语言功能以与现代 javascript 引擎兼容。 Babel 不会编译为 require.js 模块导入语法。相反,它使用 Node.js 使用的 CommonJS 模块语法。因此,您可以直接 运行 代码,而无需在 Node.js.
中进一步构建依赖项
由于它一次只对单个文件进行操作并且是一种直接的翻译,因此它不会决定如何将其他文件的源代码包含到当前文件中。
也就是说,如果您打算在浏览器中使用它,您将需要一个支持 CommonJS 模块语句的构建系统或捆绑器:
- 有关许多典型构建配置的列表,请参阅 https://babeljs.io/docs/setup/#installation
- Browserify 和 Webpack 是 Javacript 生态系统中最受欢迎的两个
- 这些系统 'bundle' 您的 javascript 代码通过在任何引用 'require' 的地方注入文件,因此通常会生成一个输出 js 文件,您可以 运行 在 ecma5
尝试用相应的方法替换转译代码中的require。例如:对我来说,将 require('react') 替换为 window.react 将有效
据我了解,使用 Babel 允许您通过转译在 ecma5 环境中使用 ecma6 javascript。然而,当我使用 'import' 时,'import' 被转译为 'require'。 'require' 不是 ecma5,需要库 'require.js'。因此,您不能在没有附加依赖项的情况下使用 'import/ export',对吗?
是的,Babel 只是为了翻译新的语言功能以与现代 javascript 引擎兼容。 Babel 不会编译为 require.js 模块导入语法。相反,它使用 Node.js 使用的 CommonJS 模块语法。因此,您可以直接 运行 代码,而无需在 Node.js.
中进一步构建依赖项由于它一次只对单个文件进行操作并且是一种直接的翻译,因此它不会决定如何将其他文件的源代码包含到当前文件中。
也就是说,如果您打算在浏览器中使用它,您将需要一个支持 CommonJS 模块语句的构建系统或捆绑器:
- 有关许多典型构建配置的列表,请参阅 https://babeljs.io/docs/setup/#installation
- Browserify 和 Webpack 是 Javacript 生态系统中最受欢迎的两个
- 这些系统 'bundle' 您的 javascript 代码通过在任何引用 'require' 的地方注入文件,因此通常会生成一个输出 js 文件,您可以 运行 在 ecma5
尝试用相应的方法替换转译代码中的require。例如:对我来说,将 require('react') 替换为 window.react 将有效