0

我有一个想要包含在 Brocfile.js 中的配置设置,因此我不会直接在文件中设置它。例如,在config/custom.js我会有类似的东西:

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

在我的 Brocfile 中,我想做类似的事情:

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.jsES6 解析器未解析。这是因为 Brocfile 不在您的应用程序树(应用程序目录)中。因此,您不能使用importBrocfile 中的语法。

您的 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 回答