5

Weylandが完全に文書化されていないままで、うなり声のように、標準的ではないので、私は、デュランダルのプロジェクトをビルドするためにうなり声を使用したいと思います。これを行うにはビルデュランダル(R.js +テキスト)

、面倒な作業は、最適化中に、すべてのJSとHTMLファイルにプルする必要がありますが、私は、テキストモジュールを介してHTMLファイルをインライン化するRequireJSを取得することができません。

weylandがテキストファイルmanuallyをコピーしているように見えますが、実際にそれらを使用するためにrequirejs(またはアーモンド)を取得するために何をしているのか分かりません。私はthis questionをseeenているが、それはデュランダルで行われていないdefineコール、で参照されるテキストモジュールが必要です。必要のため

私gruntfileは私がMimosaを見てお勧めし兵卒に可能な代替として、この設定

requirejs: { 
      build: { 
       options: {     
        name: '../lib/require/almond-custom', //to deploy with require.js, use the build's name here instead 
        insertRequire: ['main'], //needed for almond, not require 
        baseUrl: 'src/client/app', 
        out: 'build/main-built.js', 
        mainConfigFile: 'src/client/app/main.js', //needed for almond, not require 
        wrap: true, //needed for almond, not require 
        paths: { 
         'text': '../lib/require/text', 
         'durandal':'../lib/durandal/js', 
         'plugins' : '../lib/durandal/js/plugins', 
         'transitions' : '../lib/durandal/js/transitions', 
         'knockout': '../lib/knockout-2.3.0', 
         'bootstrap': '../lib/bootstrap.min', 
         'jquery': '../lib/jquery-1.9.1', 
         'Q' : '../lib/q.min' 
        }, 
        inlineText: true, 
        optimize: 'none', 
        stubModules: ['text']    
       } 
      } 
     } 
+0

なぜhtmlファイルを最適化する必要がありますか? – dcodesmith

+0

その最適化についてではなく、それらをバンドルすることについてです。 RequireJSのテキストモジュールはテキストの非同期呼び出しを行い、Durandalの場合は部分的に使用するHTMLファイルです。 R.jsの目的は、一つのファイルにあなたのJSを束ねることであり、それはデュランダルのために「必要」-d HTMLをバンドルすることは理にかなっています。この操作はサポートされていますが、Durandaの場合、要求は動的です。動的なバンドルのやり方や、それが可能なのかどうかはわかりません。 – Tyrsius

答えて

5

あなたはhttps://npmjs.org/package/grunt-durandalに試みを与えたいと思うかもしれません。私はこれをgruntベースのビルドプロセスの一部として使用しています。例については、https://github.com/RainerAtSpirit/HTMLStarterKitProを参照してください。

durandal: { 
    main: { 
     src: ['app/**/*.*', 'lib/durandal/**/*.js'], 
      options: { 
      name: '../lib/require/almond-custom', 
       baseUrl: requireConfig.baseUrl, 
       mainPath: 'app/main', 
       paths: mixIn({}, requireConfig.paths, { 'almond': '../lib/require/almond-custom.js' }), 
       exclude: [], 
       optimize: 'none', 
       out: 'build/app/main.js' 
     } 
    } 
}, 
+0

これは素晴らしいですね!ドキュメントでは 'name'はアーモンドパスをオーバーライドする方法であることを知らせる必要がありますが、これは確実なスタートです。おかげでRainer! – Tyrsius

+0

そのため、ドキュメンテーションは 'grunt build'タスク実験と呼ばれています。 – RainerAtSpirit

+0

optimizeプロパティは何を行い、それ以外の値は何ですか?私はそれについての情報を見つけることができないようです。 – Norbert

2

を使用しています。これは、として広く兵卒として使用されていないが、十分に文書化されており、かなり少ないの設定を必要とし、あなたはデュランダルスケルトンすべてを開始した場合にインライン化のHTMLを含め、あなたのために設定されています。

デュランダルもそれを推奨していますし、それを開始する方法を説明します:​​

あなたはそれが解放のためにすべてをパッケージ持つように開発し、make dist開始するmake startを実行することができます。

関連する問題