次の構造を持つ複数のアプリで構成されるプロジェクトがあります。
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をアプリごとに1つの出力ファイルにコンパイルしたいと考えています。これはapp2で機能していますが、共有コードを使用していません...まだ。grunt config でさまざまなことを試しましたが、毎回異なるエラーが発生します。
これまでのところ、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 の設定を混同しているのではないかと思います。