当前位置:  开发笔记 > 前端 > 正文

使用browserify和debowerify进行编译后,下划线中的"this"未定义

如何解决《使用browserify和debowerify进行编译后,下划线中的"this"未定义》经验,为你挑选了0个好方法。

首先......我有下一个gulp任务:

gulp.task('js', function() {
    browserify('./src/js/main.js')
        .bundle()
        .on('error', onError)
        .pipe( source('main.js') )
        .pipe( gulp.dest(path.build.js) );
});

和package.json:

{
  "browserify": {
    "transform": [
      ["babelify", { "presets": ["es2015"] }],
      "debowerify"
    ]
  },
}

我在main.js中导入Backbone(或者只是下划线......没关系)

import Backbone from 'backbone';

在控制台我得到错误

未捕获的TypeError:无法读取未定义的属性"_"

我检查了代码,发现在库的开头是下划线源root是未定义的

 // Establish the root object, `window` in the browser, or `exports` on the server.
  var root = this;

  // Save the previous value of the `_` variable.
  var previousUnderscore = root._;

我认为问题在于debowerify或babelfy是将代码包装在某个函数中.但是如果我使用没有debowerify的节点模块,一切正常.但我想用凉亭.

那么如何解决这个问题呢?

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有