使用 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
未找到未捕获的模块 xhr cordova-1.5.0.js