2013-04-07 10 views
11

私は今日の午後にGruntとRequire JSを試しています。私はtextモジュールの大ファンで、テンプレートを持ってきて使っています。非Gruntベースのプロジェクトでは、私はinlineTextstubModules JSオプションを使用してテンプレートファイルをインライン展開しました。しかし、私はGruntでこれを動作させるのに問題があります。インライン展開require.jsテキスト! Gruntを使って

が必要コンフィグ

require.config({ 
    paths: { 
     // Using Bower for dependency management 
     text: '../components/requirejs-text/text' 
    } 
}); 

使用

define(['text!template.html'], function (html) { 
    // Do stuff with html 
}); 

Gruntfile.js

requirejs: { 
    dist: { 
     options: { 
      baseUrl: 'app/scripts', 
      optimize: 'none', 
      preserveLicenseComments: false, 
      useStrict: true, 
      wrap: true, 
      inlineText: true, 
      stubModules: ['text'] 
     } 
    } 
} 

を実行した後私はコンソールのさまざまなエラーが出る:

  • その後、/dist/components/requirejs-text/text.js
  • Load timeout for modules: text!template.html_unnormalized2

2つの問題に見つからないファイル:

  • それは、インライン化されていないようですtext.jsコード
  • をインライン化していないようですファイル

なぜ機能しないのですか?

+0

どのフォルダ構造がどのように見えるのでしょうか?これが実行されるとき、確かに 'text.js'は 'dist'ディレクトリにありますか? –

+0

私は同じ問題を抱えています。私には、ビルドツールがtext.jsを探しているようです。なぜなら、 "text"という単語が依存関係['text!template.html']に現れるからです。私は必要テキストプラグインも使用しています。 –

+0

かなりの数があるので、あなたはgruntのためにrequire.js libを使用していますか? – ghost23

答えて

1

r.jsにはtextモジュールを指定する必要があるため、エラーが表示されます。

あなたは、パスの設定を追加することによってそれを行うことができます。

requirejs: { 
    dist: { 
     options: { 
      baseUrl: 'app/scripts', 
      optimize: 'none', 
      preserveLicenseComments: false, 
      useStrict: true, 
      wrap: true, 
      inlineText: true, 
      stubModules: ['text'], 
      paths: { 
      'text': 'libs/text' // relative to baseUrl 
      } 
     } 
    } 
} 

次に、あなたが適切なディレクトリにtext.jsモジュールをダウンロードする必要があります。

なぜrequire.configが機能していないのですか?

r.jsはある時点で設定を評価する必要があるためです。あなたのrequire.configある質問には言及しなかったが、r.jsにある場合、あなたはそれを評価したい場合には、あなたは(https://github.com/jrburke/r.js/blob/master/build/example.build.js#L35を参照)指示する必要があります。

requirejs: { 
    dist: { 
     options: { 
      baseUrl: 'app/scripts', 
      optimize: 'none', 
      preserveLicenseComments: false, 
      useStrict: true, 
      wrap: true, 
      inlineText: true, 
      stubModules: ['text'], 
      mainConfigFile: '../config.js' // here is your require.config 

      // Optionally you can use paths to override the configuration 
      paths: { 
      'text': 'libs/text' // relative to baseUrl 
      } 
     } 
    } 
} 
関連する問題