Javascript 为Browserify中的文件设置自定义路径
我正在尝试将我当前的RequireJS工作流更改为Browserify+Watchify工作流,仅用于我的前端Javascript(我的后端是Ruby)。我遇到的唯一问题是,我没有一个容易的地方来配置我所谓的“命名路径”。假设我的前端结构如下:Javascript 为Browserify中的文件设置自定义路径,javascript,requirejs,browserify,Javascript,Requirejs,Browserify,我正在尝试将我当前的RequireJS工作流更改为Browserify+Watchify工作流,仅用于我的前端Javascript(我的后端是Ruby)。我遇到的唯一问题是,我没有一个容易的地方来配置我所谓的“命名路径”。假设我的前端结构如下: app/ models/ ExampleModel.js views/ ExampleView.js main.js util/ backbone-all.js vendor/ jquery-2.1.0.js ba
app/
models/
ExampleModel.js
views/
ExampleView.js
main.js
util/
backbone-all.js
vendor/
jquery-2.1.0.js
backbone-1.1.2.js
backbone-marionette-2.0.1.js
underscore-1.6.0.js
在上述示例中,请注意两件事:
util
文件夹中的backbone all.js
文件require.config({
paths: {
"jquery": "vendor/jquery-2.1.0",
"backbone": "vendor/backbone-1.1.2",
"underscore": "vendor/underscore-1.6.0",
"backbone-all": "util/backbone-all"
}
});
并且能够简单地通过名称而不是完全限定(甚至相对)路径来要求我的代码。我还没能想出一个办法让它以我想要的方式在前端工作。我最接近的方法是创建一个依赖关系映射文件,该文件在我的应用程序启动之前加载(并且全局可用),并将其用作键:
window.d = window.dependency = {
"jquery": "/vendor/jquery-2.1.0",
"backbone": "/vendor/backbone-1.1.2",
"underscore": "/vendor/underscore-1.6.0",
"backbone-all": "/util/backbone-all"
};
var $ = require(d.jquery);
有没有人遇到过这个问题,或者找到了合适的解决方案?我遇到了类似的问题,但6个月前还没有得到公认的答案。也许事情已经改变了。您可以使用
包.json中的浏览器
字段来配置类似于requireJS的路径
映射的映射。看
"browser": {
"jquery": "./vendor/jquery-1.42.js",
"./lib/ops.js": "./browser/opts.js"
}