Backbone.js 使用Lodash代替下划线,并进行浏览

q3aa0525  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(171)

我现在正在尝试使用Browserify,但遇到了问题。
我总是使用带Lodash的Backbone而不是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');

这看起来有点不对劲...

h79rfbju

h79rfbju1#

b是browserify一个示例。

b.require('lodash', {expose: 'underscore'});

对于jQuery,请查看我在github上版本:https://github.com/amiorin/jquery

jjhzyzn0

jjhzyzn02#

您不需要任何shim。您所需要的只是browserify任务中的正确别名。

alias: ['./node_modules/lodash/dist/lodash.underscore.js:underscore']

Look at my example

相关问题