如何优化我的多个requirejs项目?例如,我在下面的结构中,在不同的位置/文件夹中有两个main.js
,
build/
build.js
dev/
index.php
core/
js/
main.js
libs/
jquery.js
local/
js/
main.js
我的build/build.js
({
// Where my HTML and JS is stored.
appDir: "../dev/",
// Top-level directory containing my JS:
baseUrl: "local/view/javascript/base/",
// Where to build the optimized project.
dir: "../dist",
// Define the modules to compile.
modules: [
{
name: 'main',
mainConfigFile: '../dev/local/js/main.js'
},
{
name: 'main',
mainConfigFile: '../dev/core/js/main.js'
}
]
})
它不断压缩或查找依赖项失败,例如
错误:ENOENT,没有这样的文件或目录'c:\wamp\websitename\dist\local\js\jquery.js
我的query.js
位于core/js/libs/
-乳清中,它在localjs
中寻找它吗?
我错过了什么?
main
在modules
设置中出现两次。所以你是在告诉r.js
"请在../dist
中使用这样那样的选项创建模块main
,并在../dist
中创建不同的模块main
"。r.js
应该如何创建两个不同的模块,它们应该是../dist
中的相同文件?它不能。
你也不能像你那样把mainConfigFile
放在模块配置中。它是一个顶级选项,所以如果你想有一个每个模块的设置,你需要使用override
。设置mainConfigFile
并不能告诉r.js
您实际上正在尝试优化哪个模块。
根据你在问题中描述的内容,似乎需要这样的东西:
({
// Where my HTML and JS is stored.
appDir: "../dev/",
// Top-level directory containing my JS:
baseUrl: "local/view/javascript/base/",
// Where to build the optimized project.
dir: "../dist",
// Define the modules to compile.
modules: [
{
// Give a unique name.
name: 'main_local',
// This module does not exist in the source so tell r.js to
// *create* it.
create: true,
// What we want in it.
include: ['../dev/local/js/main.js'],
// "Override" the top level mainConfigFile, just for this module.
override: {
mainConfigFile: '../dev/local/js/main.js'
}
},
{
name: 'main_core',
create: true,
include: ['../dev/core/js/main.js'],
override: {
mainConfigFile: '../dev/core/js/main.js'
}
},
]
})