0

ファイルに直接設定しないように、Brocfile.js に含めたい構成設定があります。たとえば、config/custom.jsでは次のようになります。

export default {
  path: 'http://abc.blah.com/'
};

私のブロクファイルでは、次のようなことをしたいと思います:

if (process.env.EMBER_ENV === 'development') {
  app.options.inlineContent = {
    assetPrefix: {
      content: customConfig.path
    }
  };
}

Brocfileに custom.jsをインポート/インクルードし、そのパスプロパティを使用するにはどうすればよいですか? インポートしようとしましたが、次のようになります:

import config from 'config/custom.js';
^^^^^^
Unexpected reserved word

アップデート:

以下の回答に基づいて、私のファイルは次のようになりました。

// config/custom.js

module.exports = {
  assetPrependPath: 'http://abc.blah.com/'
};


// Brocfile.js

var customConfig = require('./config/custom');

...

if (process.env.EMBER_ENV === 'development') {
  app.options.inlineContent = {
    assetPrefix: {
      content:  customConfig.assetPrependPath
    }
  };
}
4

1 に答える 1

3

Brocfile.jsは ES6 パーサーによって解析されないため、エラーが発生しています。これは、Brocfile がアプリのツリー (アプリ ディレクトリ) にないためです。importしたがって、 Brocfile のような構文は使用できません。

Brocfile は、アプリケーションの構築に使用されます。内部で設定しているような環境固有の変数if (process.env.EMBER_ENV === 'development')は、Ember CLI のconfig/environment.jsファイルに入れる必要があります。environment.jsのオブジェクトのすべてのプロパティは、ENV.APPアプリケーション インスタンスとアドオンに渡されます。したがって、最終目標によっては、そのアプローチを取ることができ、Brocfile にインポートする必要がない場合があります。

本当に何かを Brocfile にインポートしたい場合は、require.js のようなモジュール ローダーを使用する必要があります。

var Config = require('path/to/config.js');`

...そして、あなたのpath/to/config.jsファイルで:

module.exports = {
  // Options here
}

資産の改訂

ユースケースを見ると、面倒な作業を行うために broccoli-asset-rev のような Broccoli アドオンを調べたくなるかもしれません。

于 2015-01-28T20:27:48.710 に答える