如何优化我的多个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:\瓦帕\ websitename \ DIST \本地\ JS \的jquery.js
我的query.js
位于core/js/libs/
- 乳清是否在local\js
中寻找?
我错过了什么?
答案 0 :(得分:1)
main
在modules
设置中出现两次。所以,您要告诉r.js
"请在main
中使用此类选项创建模块../dist
,并在main
个不同选项中创建模块../dist
#34 ;. 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'
}
},
]
})