使用 r.js 构建多个捆绑包
Building multiple bundles with r.js
希望是一个低级的概念性问题。我无法理解 r.js build configs 的 modules
选项。我想用一个 r.js 构建配置构建具有嵌套依赖关系的多个模块。
假设我有以下项目结构:
+---build
+---src
+---moduleOne
| +---moduleOne.js
| \---dependecyForModuleOne.js
+---moduleTwo
| +---moduleOne.js
| \---dependecyForModuleTwo.js
|---buildConfig.js
|---devModuleConfig.js
\---prodModuleConfig.js
devModuleConfig
和 prodModuleConfig
是开发和生产 运行 时间配置,buildConfig.js
是 r.js 构建配置。
现在,我可以使用此配置毫无问题地构建 moduleOne:
({
"baseUrl": "./",
"name": "moduleOne/moduleOne",
"out": "../build/moduleOneBundle.js",
mainConfigFile: 'devModuleConfig.js',
optimize: 'none'
})
在构建配置中指定不同的路径后,我最终得到了一个构建包,我可以 运行:
+---build
\---moduleOneBundle.js
我想构建两个模块,因此使用 modules
配置选项指定 moduleOne
:
({
"baseUrl": "./",
modules: [
{
"name": "moduleOne/moduleOne",
"out": "../build/moduleOne.js"
}
],
dir:"../build", // <-- r.js says I need to add this. why?
mainConfigFile: 'devModuleConfig.js',
optimize: 'none'
})
除了所需的 dir
选项外,我还在 build
目录中获得了所有配置,但我没有指定它们,而且我没有获得捆绑的模块,我得到包含 r.js 构建输出的文本文件。事实上,build
最终看起来与 src
:
完全一样
+---build
+---moduleOne
| +---moduleOne.js
| \---dependecyForModuleOne.js
+---moduleTwo
| +---moduleOne.js
| \---dependecyForModuleTwo.js
|---build.txt
|---buildConfig.js
|---devModuleConfig.js
\---prodModuleConfig.js
如何配置多个模块以使用一个 r.js 配置进行构建?我已经阅读了几次文档,但无法理解它。
你可以在这里看到包含所有这些的我的项目:https://github.com/sennett/r.js-multiple-modules
当指定 modules
时,r.js 包含所有文件,然后根据 modules
中指定的规则优化文件。 removeCombined: true
从 build
中删除合并到另一个模块中的模块,然后手动删除其他文件可用于手动清理任何不需要的构建工件。
希望是一个低级的概念性问题。我无法理解 r.js build configs 的 modules
选项。我想用一个 r.js 构建配置构建具有嵌套依赖关系的多个模块。
假设我有以下项目结构:
+---build
+---src
+---moduleOne
| +---moduleOne.js
| \---dependecyForModuleOne.js
+---moduleTwo
| +---moduleOne.js
| \---dependecyForModuleTwo.js
|---buildConfig.js
|---devModuleConfig.js
\---prodModuleConfig.js
devModuleConfig
和 prodModuleConfig
是开发和生产 运行 时间配置,buildConfig.js
是 r.js 构建配置。
现在,我可以使用此配置毫无问题地构建 moduleOne:
({
"baseUrl": "./",
"name": "moduleOne/moduleOne",
"out": "../build/moduleOneBundle.js",
mainConfigFile: 'devModuleConfig.js',
optimize: 'none'
})
在构建配置中指定不同的路径后,我最终得到了一个构建包,我可以 运行:
+---build
\---moduleOneBundle.js
我想构建两个模块,因此使用 modules
配置选项指定 moduleOne
:
({
"baseUrl": "./",
modules: [
{
"name": "moduleOne/moduleOne",
"out": "../build/moduleOne.js"
}
],
dir:"../build", // <-- r.js says I need to add this. why?
mainConfigFile: 'devModuleConfig.js',
optimize: 'none'
})
除了所需的 dir
选项外,我还在 build
目录中获得了所有配置,但我没有指定它们,而且我没有获得捆绑的模块,我得到包含 r.js 构建输出的文本文件。事实上,build
最终看起来与 src
:
+---build
+---moduleOne
| +---moduleOne.js
| \---dependecyForModuleOne.js
+---moduleTwo
| +---moduleOne.js
| \---dependecyForModuleTwo.js
|---build.txt
|---buildConfig.js
|---devModuleConfig.js
\---prodModuleConfig.js
如何配置多个模块以使用一个 r.js 配置进行构建?我已经阅读了几次文档,但无法理解它。
你可以在这里看到包含所有这些的我的项目:https://github.com/sennett/r.js-multiple-modules
当指定 modules
时,r.js 包含所有文件,然后根据 modules
中指定的规则优化文件。 removeCombined: true
从 build
中删除合并到另一个模块中的模块,然后手动删除其他文件可用于手动清理任何不需要的构建工件。