这是我文件夹结构的一部分:
使用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
})
但是,如果我删除paths
中的build.js
配置,则它不再有效:
跟踪以下内容的依赖项:./ golden / almond错误:ENOENT,没有此类文件 或目录 'C:\用户\马科\文件\ PROGETTI \的NodeJS-OPT \ bower_components \ domready.js' 在模块树中: ../公共/主
错误:错误:ENOENT,没有此类文件或目录 'C:\用户\马科\文件\ PROGETTI \的NodeJS-OPT \ bower_components \ domready.js' 在模块树中: ../公共/主
at Object.fs.openSync (fs.js:427:18)
我想要干,避免两次添加依赖。这可能吗?
答案 0 :(得分:15)
如果要使用运行时代码中的相同配置来查找库的位置,可以使用mainConfigFile选项:
...如果您更喜欢为构建读取“主”JS文件配置,以便您不必在单独的配置中复制值,请将此属性设置为该主JS文件的位置。将使用在该文件中找到的第一个requirejs({}),require({}),requirejs.config({})或require.config({})调用。
这样的事情:
({
baseUrl: "bower_components",
mainConfigFile: '/some/path/main.js', // adjust path as needed
name: "./almond/almond",
include: "./../public/main",
out: "build/main.js",
preserveLicenseComments: false
})