我现在正在尝试使用Browserify,但我遇到了问题。
我总是使用Backbone和Lodash代替Underscore,所以我为Browserify写了一些shim脚本:
shims/lodash.js
:
'use strict';
/* global window,require,module */
require('../vendor/lodash.underscore-1.2.0');
module.exports = window._;
shims/backbone.js
:
'use strict';
/* global window,require,module */
require('../vendor/backbone-1.0.0');
module.exports = window.Backbone;
app.coffee
:
'use strict'
$ = require './shims/jquery'
_ = require './shims/underscore'
Backbone = require './shims/backbone'
我实际上使用grunt-coffeeify
来构建Browserify模块,并在下面显示错误:
Running "coffeeify:source" (coffeeify) task
Warning: module "underscore" not found from "/Users/User/proj/src/js/vendor/backbone-1.0.0.js" Use --force to continue.
我应该更改什么才能正常使用Backbone?提前谢谢。
更新
不知何故,它适用于以下代码:
shims/lodash.js
:
'use strict';
/* global require,module */
module.exports = require('../vendor/lodash-1.2.0');
shims/backbone.js
:
'use strict';
/* global window,require,module */
window.$ = require('./jquery');
window._ = require('./lodash');
module.exports = require('../vendor/backbone-1.0.0');
并在backbone-1.0.0.js
中注释掉以下代码:
//if (!_ && (typeof require !== 'undefined')) _ = require('underscore');
这看起来有些不对劲......
答案 0 :(得分:3)
b
是browserify的一个实例。
b.require('lodash', {expose: 'underscore'});
对于jQuery,请查看我在github上的版本:https://github.com/amiorin/jquery
答案 1 :(得分:0)
你不需要任何垫片。您需要的只是browserify任务中的正确别名。
alias: ['./node_modules/lodash/dist/lodash.underscore.js:underscore']