inf*_*-vv 6 underscore.js browserify gulp babeljs
首先......我有下一个gulp任务:
gulp.task('js', function() {
browserify('./src/js/main.js')
.bundle()
.on('error', onError)
.pipe( source('main.js') )
.pipe( gulp.dest(path.build.js) );
});
Run Code Online (Sandbox Code Playgroud)
和package.json:
{
"browserify": {
"transform": [
["babelify", { "presets": ["es2015"] }],
"debowerify"
]
},
}
Run Code Online (Sandbox Code Playgroud)
我在main.js中导入Backbone(或者只是下划线......没关系)
import Backbone from 'backbone';
Run Code Online (Sandbox Code Playgroud)
在控制台我得到错误
未捕获的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._;
Run Code Online (Sandbox Code Playgroud)
我认为问题在于debowerify或babelfy是将代码包装在某个函数中.但是如果我使用没有debowerify的节点模块,一切正常.但我想用凉亭.
那么如何解决这个问题呢?
就我而言,仅使用带下划线的 browserify 时会出现相同的错误。我通过从下划线切换到 lodash 解决了这个问题。它们通常(肯定不完全)兼容,但在最坏的情况下,我宁愿从下划线源复制一些缺失的函数,也不愿接受其隔离的加载方法。