编程语言
首页 > 编程语言> > javascript-在Browserify中设置文件的自定义路径

javascript-在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
  backbone-1.1.2.js
  backbone-marionette-2.0.1.js
  underscore-1.6.0.js

在上面的示例中,请注意两件事:

>我所有供应的JS文件的文件名中都有其版本
>请注意util文件夹中的bone-all.js文件

使用RequirejS,我可以执行以下操作:

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);

有没有人遇到此问题,或遇到合适的解决方案?我遇到了this post,这很相似,但是6个月前没有接受任何答案.也许情况已经变了.

解决方法:

您可以使用package.json中的browser字段来配置类似于requireJS的路径映射的映射.参见the browserify docs.

"browser": {
  "jquery": "./vendor/jquery-1.42.js",
  "./lib/ops.js": "./browser/opts.js"
}

标签:browserify,requirejs,javascript
来源: https://codeday.me/bug/20191121/2051830.html