これは、問題を示すサンプルアプリケーションです(ノードベースのr.jsに関するものなので、申し訳ありません)
相対パスで requirejs オプティマイザーを正しく動作させることができません。
私のWebアプリには次のディレクトリがあります
- アプリ
- index.html - requirejs、main.js、その後
require(['plugins'])
(標準のマルチページ設定)を含む - スクリプト
- main.js - requirejs をブートストラップし、baseUrl を /scripts に設定します
- plugins.js - app-plugins からモジュールを参照および公開します。経由の参照
../app-plugins/a.js
- アプリプラグイン
- a.js
- index.html - requirejs、main.js、その後
最適化されていないバージョンではすべて正常に動作します (アプリで Web サーバーを実行し、コンソールを開き、インデックス ページに移動します)。
ただし、最適化すると../
、plugins.js が原因でエラーが発生します。この cd を最適化ディレクトリに移動して実行すると、node .\node_modules\requirejs\bin\r.js -o .\build.json
. エラーは
W:\temp\requireop\optimization [master]> .\Build-RequireJs.ps1
Tracing dependencies for: main
Tracing dependencies for: plugins
Error: ENOENT, no such file or directory 'W:\temp\requireop\build\app-plugins\a.js'
In module tree:
plugins
Error: Error: ENOENT, no such file or directory 'W:\temp\requireop\build\app-plugins\a.js'
In module tree:
plugins
at Object.fs.openSync (fs.js:427:18)