gpt4 book ai didi

node.js - 优化多个requirejs配置文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:21 25 4
gpt4 key购买 nike

我在使用 r.js 进行优化时遇到问题

我的项目有多个 requirejs 配置文件

+ app
- module1
* main.js
* foo.js
* bar.js
- main.js
+ build.js

每个 main.js 都有自己的包

main.js代码是:

requirejs.config({
'baseUrl': '../app/',
'paths': {
'module1' : 'module1/main'
}
});
define(['module1'],function(){});

module1/main.js 代码如下:

requirejs.config({
'paths': {
'foo' : 'module1/foo',
'bar' : 'module1/bar'
}
});
define(['foo','bar'],function(){});

build.js 文件如下:

({
mainConfigFile: 'app/main.js',
baseUrl: 'app',
name: 'main',
out: 'dist/main.js',
})

当我执行$ r.js -o build.js时,它返回一个错误

Tracing dependencies for: main
Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
main
module1

Error: Error: ENOENT: no such file or directory, open 'D:\Project\Test\app\foo.js'
In module tree:
main
module1

at Error (native)

最佳答案

据我所知, r.js根本无法处理多个 requirejs.config构建 bundle 时调用。 我从未见过任何文档或问题报告,或与此相矛盾的工作示例。 (RequireJS 会让您多次调用 requirejs.config ,并组合在运行时传递的配置,但这与让 r.js 处理对 requirejs.config 的多次调用不同。

您必须将所有调用合并到 requirejs.config进入您指向的单个调用 r.jsmainConfigFile .

我已在我的计算机上重新创建了您的设置,但遇到了与您相同的错误。如果我修改app/main.js中的配置到以下内容,然后我可以构建 bundle :

requirejs.config({
'baseUrl': '../app/',
'paths': {
'module1' : 'module1/main',
'foo' : 'module1/foo',
'bar' : 'module1/bar'
}
});

只是为了好玩,我还尝试了以下不起作用:

requirejs.config({
'baseUrl': '../app/',
'paths': {
'module1' : 'module1/main'
}
});
requirejs.config({
'paths': {
'foo' : 'module1/foo',
'bar' : 'module1/bar'
}
});

(另请注意,上面的 baseUrl 可以简化为 . 而不是 ../app/ 。)

关于node.js - 优化多个requirejs配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38280833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com