r.js オプティマイザーを使用して、すべての依存関係を 1 つのファイルにビルドしようとしています。これが私のファイル構造です:
app
bin
src
css
main.css
js
libs
raphael-2.1.0
eve.js
raphael.amd.js
raphael.core.js
raphael.svg.js
raphael.vml.js
jquery-1.8.0.js
require-2.0.5.js
main.js
build.js
index.html
r.js
build.js の内容は次のとおりです。
({
baseURL: 'js',
dir: '../bin',
paths: {
'jquery': 'libs/jquery-1.8.0',
'raphael': 'libs/raphael-2.1.0/raphael.amd'
},
name: 'main',
removeCombined: true
})
'libs/raphael-2.1.0/raphael.amd'
依存関係は、raphael-2.1.0 ディレクトリ内の他のすべてをロードします。app.local/src にアクセスすると、アプリは期待どおりに動作します。次のように、index.html ファイルに単一のスクリプト タグを指定して、require を介して実行時にモジュールを読み込みます。
<script src="js/libs/require-2.0.5.js" data-main="js/main.js" type="text/javascript" charset="utf-8"></script>
ただし、アプリからコマンドを実行しようとすると、次node r.js -o src/build.js
のようなエラーが発生します。
Error: ERROR: module path does not exist: /app/src/main.js for module named: main. Path is relative to: /app
at /app/r.js:14215:31
...そして、すべてが「そのまま」ビンにコピーされます。パス オブジェクトに追加'main': 'js/main'
すると、r.js は jquery と raphael を見つけることができません。jquery と raphael のパスに追加するとjs/
、libs/raphael-2.1.0/rapheal.amd の依存関係の宣言が間違っています。それらを更新すると、すべてが期待どおりにビルドされますが、app.local/src/index.html のアプリが壊れています。また、それがビルドファイルに baseURL プロパティを持つポイントだと思いましたか? baseURL が無視されているように見えます。私は何を間違っていますか?