未捕获的TypeError:无法设置未定义的属性'[any AMD]'

时间:2016-10-27 14:20:32

标签: amd commonjs babel zurb-foundation-6

示例scrollmagic模块,但它也与其他模块一起发生。 我怀疑这是为Babel但不确定。

我们如何重现此错误?

  1. Git clone https://github.com/zurb/foundation-zurb-template projectname

  2. 安装:

    • npm install gsap --save-dev
    • bower install scrollmagic --save-dev
  3. 添加文本行config.yml:

    • “node_modules / GSAP / SRC /未压缩/ TweenMax.js”
    • “bower_components / scrollmagic / scrollmagic /未压缩/ ScrollMagic.js”
    • “bower_components / scrollmagic / scrollmagic /未压缩/插件/ animation.gsap.js”
    • “bower_components / scrollmagic / scrollmagic /未压缩/插件/ debug.addIndicators.js”
    • “bower_components / scrollmagic / scrollmagic /未压缩/插件/ jquery.ScrollMagic.js”
  4. npm start

  5. 反而发生了什么?

    在控制台Google Chrome中: Uncaught TypeError: Cannot set property 'ScrollMagic' of undefined

    Google Chrome: captura

    火狐: captura2

1 个答案:

答案 0 :(得分:0)

我发现了问题,但没有解决。   - 1 Answer of Stackoverflow

  

使用Babel 6和babel-preset-es2015(或Babel 5)时,Babel默认假定它处理的文件是ES6模块。导致你麻烦的是,在ES6模块中,这是未定义的,而在"脚本中#34;例如,这取决于环境,例如浏览器脚本中的窗口或CommonJS代码中的导出。

问题是我在ES6中有文件而其他文件没有。 这里要分开文件吗?怎么样?

} else if (typeof exports === 'object') {

}(this, function () {
    "use strict";

    var ScrollMagic = function () {

为什么错?解释...

更改文件javascript。

更改为 undefined

除此之外:

} else if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') {


})(undefined, function () {
    "use strict";

    var ScrollMagic = function ScrollMagic() {

(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(factory);
    } else if (typeof exports === 'object') {
        // CommonJS
        module.exports = factory();
    } else {
        // Browser global
        root.ScrollMagic = factory();
    }
}(this, function () {
    "use strict";

    var ScrollMagic = function () {

代码片段:

在此之前:

(function (root, factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(factory);
    } else if ((typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object') {
        // CommonJS
        module.exports = factory();
    } else {
        // Browser global
        root.ScrollMagic = factory();
    }
})(undefined, function () {
    "use strict";

    var ScrollMagic = function ScrollMagic() {

这样做之后:

boolean checked = ((RadioButton) view).isChecked();