javascript - 避免在 RequireJS 主文件和 r.js 构建文件中重复 "paths"配置?

标签 javascript requirejs r.js almond

这是(部分)我的文件夹结构:

  • 节点测试
    • bower_components
    • build
    • 公开
      • main.js
    • build.js

使用 r.js -o build.js 运行优化器,以下配置工作正常:

// main.js file
requirejs.config({
    baseUrl: '../bower_components',
    paths: {
        'domready': 'domready/ready',
        'jquery': 'jquery/jquery',
    }
});

requirejs(['domready', 'jquery'], function (domReady, $) {
    domReady(function () {

    });
});

// build.js file
({
    baseUrl: "bower_components",
    name: "./almond/almond",
    include: "./../public/main",
    out: "build/main.js",
    paths: {
        'domready': 'domready/ready',
        'jquery': 'jquery/jquery',
    },
    preserveLicenseComments: false
})

但是,如果我删除 build.js 中的 paths 配置,它就不再起作用了:

Tracing dependencies for: ./almond/almond Error: ENOENT, no such file or directory 'C:\Users\Marco\Documents\Progetti\nodejs-opt\bower_components\domready.js' In module tree: ../public/main

Error: Error: ENOENT, no such file or directory 'C:\Users\Marco\Documents\Progetti\nodejs-opt\bower_components\domready.js' In module tree: ../public/main

at Object.fs.openSync (fs.js:427:18)

我想保持干爽,避免两次添加依赖项。这可能吗?

最佳答案

如果您想使用运行时代码中的相同配置来查找您的库的位置,您可以使用 mainConfigFile选项:

...if you prefer the "main" JS file configuration to be read for the build so that you do not have to duplicate the values in a separate configuration, set this property to the location of that main JS file. The first requirejs({}), require({}), requirejs.config({}), or require.config({}) call found in that file will be used.

像这样:

({
    baseUrl: "bower_components",
    mainConfigFile: '/some/path/main.js', // adjust path as needed
    name: "./almond/almond",
    include: "./../public/main",
    out: "build/main.js",
    preserveLicenseComments: false
})

关于javascript - 避免在 RequireJS 主文件和 r.js 构建文件中重复 "paths"配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456329/

相关文章:

javascript - 自动列出具有异步加载的 require.js 依赖项以进行 r.js 优化

javascript - 如何优化作为 RequireJS 模块创建的 JavaScript 文件子集

javascript - pushState 扰乱浏览器历史

JavaScript:表单选择器不起作用

javascript - 如何通过 RequireJS 加载 jQuery Migrate for jQuery?

requirejs - 使用 r.js 时为声明的依赖项获取 'Uncaught Error: Script error'

javascript - 使用 Gulp 缩小 PHP 文件中的内联 Javascript

javascript - JSFIDDLE 上没有错误,但站点和 jslint 上有错误

dojo - 在 dojo 1.9.1 中使用 requirejs

javascript - 在客户端和后端之间共享设置/配置