我正在使用webpack 2,我希望包含一些依赖于不同NODE_ENV的样式文件。
我做了类似的事情:
const stylesEntryName = process.env.SECOND_CLIENT ? "main_for_second_client" : "main";
const entryUrl = `assets/styles/${stylesEntryName}.styl`;
console.log("stylesEntryName ====>>> ", stylesEntryName, entryUrl);
require(entryUrl);
但它不能以某种方式工作。我有一个错误:严重依赖:依赖的请求是表达式
控制台显示: stylesEntryName ====>>>主要资产/风格/ main.styl
也许我做错了什么? (如果是直接网址)
require('assets/styles/main.styl');
代码工作正常。
感谢您的帮助。
答案 0 :(得分:0)
webpack正在发出关于行require(entryUrl)
的警告,因为在执行代码之前,entryUrl变量的值是未知的(即,require不是静态可分析的)。以下是有关该文件的webpack文档:https://webpack.github.io/docs/context.html#critical-dependencies
您可以通过删除动态需求来解决此问题,而是使用if-else语句从可能的选项中选择静态require语句。以下是为您的问题执行此操作的代码:
if (process.env.SECOND_CLIENT === 'main_for_second_client') {
require('assets/styles/main_for_second_client.styl')
} else {
require('assets/styles/main.styl')
}