webpack4打包不能提取css为单独的文件(mini-css-extract-plugin)

发布于 2022-09-07 20:13:30 字数 2395 浏览 17 评论 0

我用的是mini-css-extract-plugin 这个插件打来提取less文件和css为单独的文件,开发时引入了,但是打包后怎么也不会生成css文件,全部按照网上配置的,有人能帮忙解答一下吗?谢谢!! 是vue项目。

引入的截图:

clipboard.png

clipboard.png

我的完整webpack.config.prod.js:

const baseConfig = require('./webpack.config.base')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const merge = require('webpack-merge')
const path = require('path')
const productionConfig = merge(baseConfig, {
  mode: 'production',
  entry: {
    app: path.join(__dirname, '../src/index.js'),
    vendor: ['vue', 'vue-router', 'vuex', 'axios', 'element-ui']
  },
  output: {
    path: path.join(__dirname, '../build/public'),
    filename: 'js/[name].bundle.js',
    chunkFilename: 'js/[name].[chunkhash:8].chunk.js',
    publicPath: './public'
  },
  module: {
    rules: [
      {
        test: /\.css/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader'
        ],
        include: [
          path.resolve(__dirname, 'node_modules')
        ]
      },
      {
        test: /\.less/,
        use: [
          MiniCssExtractPlugin.loader,
          'css-loader',
          'less-loader'
        ],
        include: [
          path.resolve(__dirname, 'node_modules')
        ]
      },
      {
        test: /\.(gif|jpg|jpeg|png|svg)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              limit: 1024,
              name: '[name].[hash:8].[ext]',
              publicPath: './public/img',
              outputPath: '/img'
            }
          }
        ]
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'file-loader',
        options: {
          limit: 80000,
          name: '[name].[hash:8].[ext]',
          publicPath: './public/fonts',
          outputPath: '/fonts'
        }
      }
    ]
  },
  optimization: {
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[\\/]node_modules[\\/]/,
          name: 'vendor',
          chunks: 'all'
        }
      }
    },
    runtimeChunk: true
  },
  plugins: [
    new MiniCssExtractPlugin({
      filename: '[name].[chunkhash:8].css',
      chunkFilename: '[id].css'
    })
  ]
})
module.exports = productionConfig

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

2022-09-14 20:13:31

应该样式文件被引入却没使用, 直接被tree-shaking掉了, package.json中加

"sideEffects": [
    "*.css",
    "*.scss",
    "*.sass",
    "*.less"
  ]
狂之美人 2022-09-14 20:13:31

兄弟,你的问题怎么解决的?我遇到的问题与你类似,但是我mode改成development就没问题了,production还是如此

吾家有女初长成 2022-09-14 20:13:31

同问题 , 找不到问题所在啊 , 尴尬

素食主义者 2022-09-14 20:13:30

我也遇到了,解决办法是把package.json里面的sideEffects去掉。

云裳 2022-09-14 20:13:30

我记得 webpack4 好像要用 mini-css-extract-plugin 代替 extract-text-webpack-plugin 了吧

尐偏执 2022-09-14 20:13:30

这有一个类似的issue:
https://github.com/webpack-co...

但很久以前了,我没办法亲自去尝试,希望能帮到大家

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文