如何使用 Webpack 删除/取消导入内联 CSS?

Dam*_*ica 6 inline-styles ecmascript-6 webpack webpack-style-loader

好的,我已经使用 Webpack 导入了一个 css 文件,style-loader如下css-loader所示:

import './style.css'
Run Code Online (Sandbox Code Playgroud)

Webpack 通过style标签将其附加到我的页面。到目前为止,一切都很好。但是,当应用程序的状态发生变化时,我想删除这种特定的样式。当然,我可以使用 删除它document.querySelector('style'),但是有一些自然的 Webpack 方法可以做到这一点吗?

提前致谢。

Tar*_*mán 2

使用 style-loader,您可以将某些 css 文件标记为惰性,并.use()在安装路由和.unuse()卸载路由时调用。

反应钩子示例:

import styles from './styles.lazy.css';

export function LegacyRoute() {
  useLayoutEffect(() => {
    styles.use();
    return () => { styles.unuse() };
  }, []);
  return <p>Hello World</p>;
}
Run Code Online (Sandbox Code Playgroud)

网络包配置:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        exclude: /\.lazy\.css$/i,
        use: ['style-loader', 'css-loader'],
      },
      {
        test: /\.lazy\.css$/i,
        use: [
          { loader: 'style-loader', options: { injectType: 'lazyStyleTag' } },
          'css-loader',
        ],
      },
    ],
  },
};
Run Code Online (Sandbox Code Playgroud)

来源: https: //github.com/webpack-contrib/style-loader#lazystyletag