webpack2动态样式文件需要

时间:2017-02-20 10:45:14

标签: javascript webpack-2

我正在使用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');

代码工作正常。

感谢您的帮助。

1 个答案:

答案 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')
}