为了提高性能,我需要将webpack配置中的css和js分离到它自己的文件中.例如style.cssmain.js,或者我 Select 给它们起的任何名字.目前,我在我的主JS文件中导入了css,比如import 'style.css'.

我怎样才能改变这一点?

Webpack配置.

const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
const isProduction = process.env.NODE_ENV === 'production';

const stylesHandler = 'style-loader';

const config  = {
  entry: './src/js/index.js',
  output: {
    path: path.resolve(__dirname, './dist/js'),
    filename: 'main.js',
    clean: true, // remove unused bundled files
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/i,
        loader: 'babel-loader',
      },
      {
        test: /\.css$/i,
        use: [stylesHandler, 'css-loader', 'postcss-loader'],
      },
      {
        test: /\.(eot|svg|ttf|woff|woff2|png|jpg|gif|otf)$/i,
        type: 'asset',
      },
    ],
  },
};

module.exports = () => {
  if (isProduction) {
    config.mode = 'production';
  } else {
    config.mode = 'development';
  }
  return config;
};

Package.json(脚本)

  "scripts": {
    "build": "webpack --mode=production --node-env=production",
    "build:dev": "webpack --mode=development",
    "build:prod": "webpack --mode=production --node-env=production",
    "watch": "webpack --watch"
  }

推荐答案

你可以把MiniCssExtractPlugin加起来,这似乎完全是你想要的:

这个插件将css解压到单独的文件中.它 for each 包含css的JS文件创建一个css文件.它支持按需加载的CSS和SourceMaps.

它建立在webpack v5的新功能之上,需要webpack v5才能工作.

你的webpack.config.js人应该会有这样的结果:

module: {
  rules: [{
    test: /\.css$/i,
    use: [
      MiniCssExtractPlugin.loader,
      'css-loader',
      'postcss-loader',
    ],
  }],
},

Javascript相关问答推荐

jsfat的黑色画布输出

ChartJS:分组堆叠条形图渲染错误

Regex可以 Select 以任何顺序匹配组

Toast函数找不到其dis

React:如何将表格收件箱正确渲染为表格主体内的组件?

从外部访问组件变量-Vueejs

在时间轴完整日历中显示日期标题

获取加载失败:获取[.]添加时try 将文档添加到Firerestore,Nuxt 3

Phaser框架-将子对象附加到Actor

获取Uint8ClampedArray中像素数组的宽度/高度

如何控制Reaction路由加载器中的错误状态?

制作钢琴模拟器,并且在控制台中不会执行或显示该脚本

如何将未排序的元素追加到数组的末尾?

为什么我的自定义元素没有被垃圾回收?

如何在.NET Core中将chtml文件链接到Java脚本文件?

为什么JPG图像不能在VITE中导入以进行react ?

如何在DYGRAPS中更改鼠标事件和键盘输入

MongoDB受困于太多的数据

JavaScript -复制到剪贴板在Windows计算机上无效

为什么NULL不能在构造函数的.Prototype中工作