6

私はGruntを使用してDurandal starter kit proパッケージをビルドしています。Durandalビルドでの最適化からファイルを除外

小さなディテールを除いて、すべて正常に動作します。私は1つのファイル(app-config以下)をオプティマイザから除外し、ビルドが完了したときにそれを非拡張ファイルとして保持したいと思います。

他のSOスレッド提案に基づいて、私は現在empty:を使用してそれを除外しています。これは、最適化されたファイルから期待どおりに削除します。私が構築されたプロジェクトを開いたときしかし、私は、コンソールにエラーが表示されます。アーモンドは問題

Uncaught Error: main missing app-config

options: { 
    name: '../lib/require/almond-custom', 
    baseUrl: requireConfig.baseUrl, 
    mainPath: 'app/main', 
    paths: mixIn({ }, requireConfig.paths, { 
     'almond': 'lib/require/almond-custom', 
     'app-config': 'empty:' 
    }), 
    optimize: 'none', 
    out: 'build/app/main.js', 
    preserveLicenseComments: false 
} 

ですか?私はそれをinclude: ['path/to/require']を使って完全なrequirejsに切り替えようとしましたが、成功しませんでした。

ローカルで再生する場合は、上記のリンクからスターターキットをダウンロードするか、私の例に近いslightly configurated versionを使用してください。フォルダにnpm installを実行すると、すべて設定されます。

+0

私はすでにこれを見てきましたが、私はdurandalにはあまりよく分かりませんが、[githubページ](https://github.com/RainerAtSpirit/HTMLStarterKitPro)では'options'オブジェクトは、配列を受け入れる' exclude'というプロパティを表示します。 –

+0

@aniedチップをありがとう。はい、私は 'empty:'とexcludeプロパティの両方を試しました。どちらも同じ例外をもたらしました。 – Johan

答えて

3

source codeをダウンロードして、次の手順を実行しました。

  1. zipファイルを抽出するには、cmdを開き、このフォルダにディレクトリを変更します。
  2. すべての依存関係をインストールするには、npm installを実行してください。
  3. gruntを実行して、プロジェクトのビルドを開始します。

そして私はhttp://localhost:8999/を開き、main.jsalert(appConfig.foo);で警告1を見たとき。 警告を非表示にするにはOkをクリックした後、Webページは罰金を科します。あなたのための入力は何ですか?

First step

Second step

だから私は、あなたがこの問題に直面しているかわかりません。この特定のリンク grunt-durandal

メインモジュールで見つかったdurandal問題の参照から

+0

ビルドを試すには、デフォルトの 'grunt'タスクではなく、' grunt build'タスクを実行することが重要です。 – Johan

+0

問題を見ましたが、ここで間違いは見られませんでした。パス定義でapp-configを完全に削除し、 '../app-config.js'として定義すると、正常に動作しますが、app-config.jsはmain.jsに含まれていますもう少し考えてみましょう。 私はアーモンドが何であるか分かりませんが、あなたはこの質問を見たいかもしれません。 http://stackoverflow.com/questions/15515872/inline-require-working-in-requirejs-but-not-with-optimized-almond-build – trungk18

+0

アーモンドが問題の場合は、代わりにrequirejsを使用することができます。これは 'lib'フォルダにも含まれています... – Johan

0

リンクはここでは、システムを見ることができますmain.js

で見つけることができますdurandal services の実装を制御します。デバッグ(真)。あなたはここの投稿documentに書かれているように削除することができます。

記事で引用された機能Overrides request execution timeout making it effectively infinite

また、gruntでuglifyを使用している間、デバッグはドキュメントに従ってfalseに設定されています。

documentationごとに、システムを設定する必要があります。デバッグ(偽)

これはちょっと役に立ちます。

0

試してみてください。

.... 
paths: mixIn({ }, requireConfig.paths, { 
    'almond': ['lib/require/almond-custom', '!lib/require/almond-custom/app-config.js'] 
}), 
.... 

はちょうどapp-config.jsの第二のパスが正しいことに注意してください。私はあなたがあなたの方法を見つけるべきだと思う、上記のヒントは、直接の解決策ではない場合。

+0

これが実際に何をしているのか詳しく説明できますか? – Johan

関連する問題