我有一个配置设置我想要包含在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
}
};
}
答案 0 :(得分:3)
您收到错误是因为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
}
查看您的用例,您可能需要查看像broccoli-asset-rev这样的Broccoli插件来为您做繁重的工作。