使用 es6 模块:未捕获的 ReferenceError:未定义定义

Posted

技术标签:

【中文标题】使用 es6 模块:未捕获的 ReferenceError:未定义定义【英文标题】:using es6 modules: Uncaught ReferenceError: define is not defined 【发布时间】:2016-04-10 14:36:48 【问题描述】:

我想使用 es6 模块,并为它们安装了 babel 插件(es2015-modules-amd)。但是我在模块中编写的内容没有导入到主文件中,控制台错误:“未捕获的 ReferenceError:未定义”在第一次尝试导入任何内容时。 当我尝试将 common.js 与这些 require 语句一起使用时,同样的事情发生了,控制台刚刚指出,错误和 require 也没有定义。 这是什么?

【问题讨论】:

您使用的是什么 AMD 模块加载器?它应该提供define 函数。 我为此安装了 es2015-modules-amd es2015-modules-commonjs。是你的意思吗? 或者我需要使用其他东西吗? 刚刚谷歌浏览器。我应该使用这个吗?或者您认为最好的模块加载器是什么? 不,我没有使用任何这些,所以这很可能是问题 【参考方案1】:

我必须得到一个模块捆绑器,在我使用它之后,一切都很好

【讨论】:

【参考方案2】:

我必须安装

npm i -D @babel/plugin-transform-modules-amd

并使用.babelrc 文件


  "plugins": [
    "transform-es2015-modules-amd"
  ]

【讨论】:

【参考方案3】:

当 babel 出现“未定义定义”错误时,另一种方法解决了我的问题:

npm install --save-dev browserify 
browserify input.js > output.js

虽然是browserify 轻松解决了问题。

【讨论】:

以上是关于使用 es6 模块:未捕获的 ReferenceError:未定义定义的主要内容,如果未能解决你的问题,请参考以下文章

将 ES6 与 Angular2 rc3 一起使用时,需要未捕获的反射元数据 shim

为什么我的ES6代码收到未捕获的类型错误? [重复]

如何导出模块

未找到未捕获的模块 xhr cordova-1.5.0.js

未捕获的错误:尚未为上下文加载模块名称“电子”:_。使用要求([])

未捕获(承诺)