vue-cli5.0 webpack 采用 copy-webpack-plugin 打包复制文件

3,034 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第22天,点击查看活动详情

废话只说一句:码字不易求个👍,收藏 === 学会,快行动起来吧!🙇‍🙇‍🙇‍。

目前 vue-cli已经发布5.0了,webpack 配置上也与之前老版本的有所不同,调整 webpack 配置最简单的方式就是在 vue.config.js 中的对象中进行配置,该对象将会被 webpack-merge 合并入最终的 webpack 配置。

有些 webpack 选项是基于 vue.config.js 中的值设置的,所以不能直接修改。例如你应该修改 vue.config.js 中的 outputDir 选项而不是修改 output.path;你应该修改 vue.config.js 中的 publicPath 选项而不是修改 output.publicPath。这样做是因为 vue.config.js 中的值会被用在配置里的多个地方,以确保所有的部分都能正常工作在一起。

vue-cli参考文档:vue-cli 文档指南

image.png

碰巧项目中打包的时候要复制一个文件夹及其下面的文件到打包文件夹 dist 下,下意识的就想起来copy-webpack-plugin这个插件,但是以前都是直接在 webpack的配置文件中直接配置,但现在 vue-cli5,在项目中找不到这个文件了,那该如何配置呢。

今天就好好说说vue-cli5.0种使用copy-webpack-plugin插件该如何配置的问题。这里我们安装的 copy-webpack-plugin 的版本是 ^11.0.0

安装 copy-webpack-plugin :

yarn add copy-webpack-plugin -D

根据官网说明,配置文件从之前的 webpack 配置文件,改成了在 vue.config.js 中进行配置,将 vue.config.js 中项目生成的内容注释掉,改成以下代码片段改写就可以使用了。这里我们是将根目录下的 static 文件复制到 打包生成的 dist 目录下。

注意这里,如果使用to参数的话 默认是dist目录下进行复制, 所填字段为目路地址

// const { defineConfig } = require('@vue/cli-service');
// module.exports = defineConfig({
//   transpileDependencies: true
// });

const path = require('path');

module.exports = {
  chainWebpack: config => {
    config.plugin('copy').use(require('copy-webpack-plugin'), [
      {
        patterns: [
          {
            from: path.resolve(__dirname, './static'),
            to: path.resolve(__dirname, './dist/static')
          }
        ]
      }
    ]);
  }
};

这里做下记录,方便有需要的小伙伴取用~