Requirejs 我可以为单个和多个优化设置一个配置吗 文件结构 assets/js/src/index.js assets/js/config.js
如果我想使用r.js优化文件,只需执行Requirejs 我可以为单个和多个优化设置一个配置吗 文件结构 assets/js/src/index.js assets/js/config.js,requirejs,Requirejs,如果我想使用r.js优化文件,只需执行r.js-o config.js name=src/index out=build/index.js,r.js会将一个文件编译成具有优化和依赖性的build/index.js,但将来会有很多文件需要编译,所以我创建了一个builds.js assets/js/builds.js 如果我运行r.js-o builds.js,我将得到错误的路径消息 Error:Error:enoint:没有这样的文件或目录,打开'D:\www\r\build\plugin\jq
r.js-o config.js name=src/index out=build/index.js
,r.js会将一个文件编译成具有优化和依赖性的build/index.js
,但将来会有很多文件需要编译,所以我创建了一个builds.js
assets/js/builds.js
如果我运行r.js-o builds.js
,我将得到错误的路径消息
Error:Error:enoint:没有这样的文件或目录,打开'D:\www\r\build\plugin\jquery.min.js'
我需要返回到config.js
,编辑相对于src
的路径
requirejs.config({
baseUrl: './',
paths: {
jquery: '../plugin/jquery.min'
}
})
它可以工作,但是否可以为这两个目的编写一个配置文件?在构建文件中再次指定相对于/src的路径 builds.js 生成文件中的路径与配置文件中的路径工作方式不同 /src的appDir选项指定所有脚本都位于/src中,但是config.js和文件夹结构的/plugins位于/src之外 解析jquery路径时,会使用config.js文件中的路径,因为使用了maincigfile选项 除了配置文件外,还需要在构建文件中重新定义所有模块路径。这是因为所有模块路径都是相对于baseUrl解析的,baseUrl与构建文件中的appDir相关,这是一个令人困惑的地方 请参考以下r.js示例构建文件 RequireJS优化器上的官方文档包含关于路径解析的有用部分。 相对路径解析规则: 通常,如果它是一个路径,则它相对于用于保存构建选项的build.js文件,或者如果只是使用命令行参数,则它相对于当前工作目录。作为文件路径的属性示例:appDir、dir、mainConfigFile、out、wrap.startFile、wrap.endFile 对于baseUrl,它是相对于appDir的。如果没有appDir,则baseUrl是相对于build.js文件的,或者如果只是使用命令行参数,则是相对于当前工作目录的 对于路径和包,它们是相对于baseUrl的,就像它们对于require.js一样
无法工作
错误:错误:错误:模块路径不存在:D:/www/requirejs/assets/js/index.js,用于名为:index的模块。路径是相对于:D:/www/requirejs/assets/js
看起来您重组了目录——您的构建文件现在是在assets/js而不是src中吗?你需要设置baseUrl,使其与你的应用程序目录相对。我更新了文章,使其更加清晰,builds.js与config.js位于assets/js目录下
,我需要将assets/js/src/
中的javascript文件编译到assets/js/build/
目录。谢谢!我已经更新了我的答案。您的思路是正确的,但解决方案是除了在配置文件中指定与生成文件的baseUrl相关的路径外,还要在生成文件中指定路径。
requirejs(['jquery']);
requirejs.config({
baseUrl: './',
paths: {
jquery: 'plugin/jquery.min'
}
})
({
appDir: 'src',
dir: 'build',
mainConfigFile: 'config.js',
modules: [
{name: 'index'}
]
})
requirejs.config({
baseUrl: './',
paths: {
jquery: '../plugin/jquery.min'
}
})
({
appDir: 'src',
baseUrl: './',
dir: 'build',
modules: [
{name: 'index'}
],
paths: {
jquery: '../plugin/jquery.min'
}
})