【问题标题】:Set custom paths to files in Browserify在 Browserify 中设置文件的自定义路径
【发布时间】:2014-07-27 23:58:53
【问题描述】:

我正在尝试将我当前的 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

在上面的例子中,请注意两点:

  1. 我出售的所有 JS 文件的文件名中都有其版本
  2. 注意util 文件夹中的backbone-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 个月前没有接受的答案。也许事情已经改变了。

【问题讨论】:

    标签: javascript requirejs browserify


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2012-06-18
      • 2013-05-26
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多