我有一个配置设置,我想包含在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.js
的 ENV.APP
对象中的任何属性都将传递给应用程序实例和插件。因此,根据您的最终目标,您可以采用这种方法,而无需导入到 Brocfile 中。
如果你真的想把一些东西导入到你的Brocfile中,你需要使用一个模块加载器,如require.js:
var Config = require('path/to/config.js');`
。然后在你path/to/config.js
文件中:
module.exports = {
// Options here
}
资产修订
查看您的用例,您可能需要查看像西兰花资产-rev 这样的西兰花插件来为您完成繁重的工作。