我有一个项目,它由多个具有以下结构的应用程序组成:
project
|-node_modules
|-common
|-public
|-js
|-vendor
|-almond.js
|-require.js
|-underscore.js
|-backbone.js
|-app1
|-public
|-js
|-requireConfig.js
|-main.js
|-views
|- ...
|-models
|- ...
|-app2
Gruntfile.js
我想让我的 requirejs grunt 任务将 js src 编译为每个应用程序的一个输出文件。我有这个为 app2 工作,但它不使用共享代码......但是。我已经为我的 grunt 配置尝试了很多不同的东西,但每次都会遇到不同的错误。
到目前为止,对于requirejs,这是我的gruntfile:
requirejs: {
app1: {
options: {
baseUrl: './',
mainConfigFile: 'app1/public/js/requireConfig.js',
include: ['app1/public/js/main'],
out: 'app1/public/release/main.js',
name: 'common/public/js/vendor/almond',
optimize: 'none'
}
},
app2: {...}
},
这是我的requireConfig.js:
require.config({
paths: {
jquery: '/common/public/js/vendor/jquery',
underscore: '/common/public/js/vendor/underscore',
etc
}
});
现在,当我尝试运行该任务时,出现错误:
Error: ENOENT, no such file or directory
'/common/public/js/vendor/backbone.js'
In module tree:
app1/public/js/main
不知道如何解决这个问题。我尝试在我的 requireConfig 中设置一个 baseUrl 但没有真正的运气。
我发现r.js示例构建文件有点令人困惑,我猜我可能以某种方式混淆了 gruntfile 中的配置。