6

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 が無視されているように見えます。私は何を間違っていますか?

4

1 に答える 1