【问题标题】:Ember-CLI: include app file in Brocfile.jsEmber-CLI:在 Brocfile.js 中包含应用程序文件
【发布时间】:2015-03-27 17:57:43
【问题描述】:

我想在 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,并使用它的 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
    }
  };
}

【问题讨论】:

    标签: ember.js ember-cli broccolijs


    【解决方案1】:

    您收到错误是因为 Brocfile.js 没有被 ES6 解析器解析。这是因为 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
    }
    

    资产修订

    查看您的用例,您可能希望查看像 broccoli-asset-rev 这样的 Broccoli 插件来为您完成繁重的工作。

    【讨论】:

    • 不幸的是,对应用目录中的文件执行 require 会引发 无法找到模块 错误。并且使用 broccoli-asset-rev 插件并不能解决手头的问题。我已经在使用类似的组件,并且需要能够插入变量而不是硬编码值。
    • 您尝试使用 require 导入的文件必须在其中使用正确的模块语法(注意 - 不是 ES6 模块语法)。通常这意味着在path/to/config.js 的文件中将对象定义为module.exports。然后你应该可以毫无问题地导入它——实际上 Ember CLI 在 Brocfile 蓝图中做到了这一点。您使用的是什么版本的 Ember CLI?
    • 我将尝试更改配置文件的语法。正如您在问题中看到的,目前我正在使用 ES6 模块语法。我在 Ember-CLI 0.1.7 上。
    • 使用 module.exports 成功了。如果你更新你的答案以包含那一点,我会接受它。
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多