有没有办法用webpack动态加载css文件

Posted

技术标签:

【中文标题】有没有办法用webpack动态加载css文件【英文标题】:is there any way to dynamically load css file with webpack 【发布时间】:2017-05-06 16:53:02 【问题描述】:

Webpack 有一个代码拆分功能(使用 require.ensure 或 System.import),它可以让我们动态加载我们的 js 文件。但我想知道是否有任何方法可以动态加载 css 文件?

这很奇怪,因为我只在一次加载我的 css 文件时动态加载我的 js 文件。

在我的项目中,我将我的 css 文件放在单独的条目中,并使用 extractTextPlugin 将它们编译为额外的 css 文件。并将它们加载到链接标签中。

【问题讨论】:

有人可以提供代码吗,我也想做,但没有其他帖子描述这里讨论的部分。请:) 【参考方案1】:

你可以,但它们不会作为 CSS 文件加载(使用 ExtractTextPlugin),而是从 JS 中加载,并注入 style-loader(完全可以)。

只有几件事要做。确保正确设置 CSS/SASS/LESS/...-loaders。如果 ExtractTextPlugin 已经可以工作,那你就很好了。然后还要确保在 ExtractTextPlugin.extract() 加载程序中将 fallbackLoader 设置为 style-loader(并将 allChunks 设置为默认值:false)。

此时,只需使用 require.ensureSystem.import 来要求/导入您的 CSS 文件,就像您对代码所做的那样。多亏了 webpack 的魔力,一切都会神奇地工作!

【讨论】:

好像不行。可以举个例子吗? webpack 编译 css 文件。但是,System.import('cssfile') 不会加载 css 文件。 好的,我明白了。我好像做错了什么。无论如何,它现在有效。非常感谢 嗨。上面的 cmets 是几个月前的,但你能帮我看看适合你的具体配置吗?我有同样的要求,但到目前为止还没有成功。我使用 amd,下面是我的 css 加载器配置。 test: /\.css$/, loader: ExtractTextPlugin.extract( fallback: "style-loader", use: "css-loader", publicPath: "./" ) 【参考方案2】:

我成功使用以下设置为不同的租户动态加载样式。

https://github.com/shiranGinige/react-redux-starter-with-login/blob/master/README.md

【讨论】:

以上是关于有没有办法用webpack动态加载css文件的主要内容,如果未能解决你的问题,请参考以下文章

如何动态加载外部CSS与JS文件

用JavaScript动态加载CSS和JS文件

有没有办法在 NAnt 中动态加载属性文件?

有没有办法将动态加载的图像文件合并到一个图像文件中?

Django:当本地 .py 文件更改并动态加载时,有没有办法防止开发服务器重新启动?

[转]webpack进阶构建项目