关于 copy-webpack-plugin 的用处和使用

webpack打包的时候, 使用 html-webpack-plugin ,在template指定的demo.html 里面 引入的本地的一些script 文件,打包之后,总是会报这里文件找不到,看下面:

//这是在这个demo.html里面引入的 本地test.js 文件
<body>
	<script src="js/test.js"></script>  
</body>   

打包之后发现,这个test.js 文件找不到test.js 找不到
看到报错信息之后,点进去看,发现了原因,原来是,这个index.html是在打包后的 dist/ 目录下,然后 dist/ 下面并没有这个test.js 的文件。

解决办法就来了,我们在 dist/ 下面 把原来 demo.html 里面 引入的 这个 test.js 文件 手动复制到 dist/ 下面,问题就可以解决了。 但是,手动太麻烦了,于是, copy-webpack-plugin 就用上了,

copy-webpack-plugin 的作用就是拷贝文件,或者文件夹,这是我这里的配置,它具体的使用方法还请大家去看官网 copy-webpack-plugin

new CopyWebPackPlugin(  // 把demo.html 里面引入的静态资源拷贝到 dist下面去, 解决之前打包之后,index.html里面引入的静态资源找不到的问题
            [
                {
                    from: path.resolve(__dirname, '../js'),  // demo.html 里面引入的test.js 的所在文件夹的路径
                    to: path.resolve(__dirname, '../dist/js'), // 打包在dist后,test.js在dist文件夹下所处的路径 
                  },
   		    ] )

这样配置之后, 在 打包后的 index.html 里面就能够找到 test.js 了,问题就解决了。

new CopyWebpackPlugin([{
    from: path.resolve(__dirname, '../'src/static)  // 一次性把static 里面的所有文件全部拷贝过来
    /* 如果static存在多个文件,就不需要把 static里面的文件一一写出来
   {
                    from: path.resolve(__dirname, '../src/static/images'),
                    to: path.resolve(__dirname, '../dist/static/images')
                },
                {
                    from: path.resolve(__dirname, '../src/static/icons'),
                    to: path.resolve(__dirname, '../dist/static/icons')
                },
                */
}]);

ps: 这是本人在使用过程中踩的坑,写出来和大家分享一下,如有不对的地方,欢迎大家指正。

{ "name": "meadia-manage", "version": "1.0.0", "description": "A Vue.js project", "author": "winspread", "private": true, "scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "build": "node build/build.js" }, "dependencies": { "axios": "^0.18.0", "echarts": "^4.2.1", "element-ui": "^2.15.10", "moment": "^2.29.4", "vue": "^2.5.2", "vue-puzzle-vcode": "^1.1.9", "vue-router": "^3.0.2", "vuex": "^3.1.0" }, "devDependencies": { "autoprefixer": "^7.1.2", "axios-mock-adapter": "^1.16.0", "babel-core": "^6.22.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-loader": "^7.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-runtime": "^6.22.0", "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-preset-env": "^1.3.2", "babel-preset-stage-2": "^6.22.0", "chalk": "^2.0.1", "copy-webpack-plugin": "^4.0.1", "css-loader": "^0.28.0", "element-theme-chalk": "^2.15.10", "extract-text-webpack-plugin": "^3.0.0", "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", "mockjs": "^1.0.1-beta3", "node-notifier": "^5.1.2", "node-sass": "^6.0.1", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "portfinder": "^1.0.13", "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "postcss-url": "^7.2.1", "rimraf": "^2.6.0", "sass-loader": "^10.2.0", "semver": "^5.3.0", "shelljs": "^0.7.6", "uglifyjs-webpack-plugin": "^1.1.1", "url-loader": "^0.5.8", "vue-loader": "^13.3.0", "vue-style-loader": "^3.0.1", "vue-template-compiler": "^2.5.2", "webpack": "^3.6.0", "webpack-bundle-analyzer": "^2.9.0", "webpack-dev-server": "^2.9.1", "webpack-merge": "^4.1.0" }, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" }, "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8" ] }
最新发布
04-01
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值