Ember-CLI:在 Brocfile.js 中包含应用程序文件



我有一个配置设置,我想包含在Brocfile.js中,这样我就不会直接在文件中设置它。例如,在配置/自定义中.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,并使用其 path 属性?我尝试导入,但得到:

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
    }
  };
}

您收到错误是因为 ES6 解析器未解析Brocfile.js。这是因为 Brocfile 不在应用的树(应用目录)中。因此,不能在 Brocfile 中使用类似 import 的语法。

您的 Brocfile 用于构建应用程序。特定于环境的变量(例如您在if (process.env.EMBER_ENV === 'development')中设置的变量)应该放在 Ember CLI 的config/environment.js文件中。environment.jsENV.APP 对象中的任何属性都将传递给应用程序实例和插件。因此,根据您的最终目标,您可以采用这种方法,而无需导入到 Brocfile 中。

如果你真的想把一些东西导入到你的Brocfile中,你需要使用一个模块加载器,如require.js:

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

。然后在你path/to/config.js文件中:

module.exports = {
  // Options here
}

资产修订

查看您的用例,您可能需要查看像西兰花资产-rev 这样的西兰花插件来为您完成繁重的工作。

相关内容

  • 没有找到相关文章