1.0.1 • Published 3 years ago
webpack-copy-replace v1.0.1
webpack-copy-replace
做这个插件是因为工作中有 测试环境 预上线环境 正式环境,这样每次打包都要手动去打包,很繁琐,作为一个程序员,能用代码处理的就绝不手动处理
用途
将webpack打包后的文件再次处理,如果替换文件中的某一些内容,或者直接就是复制一份出来
安装
npm i webpack-copy-replace -D
or
yarn add webpack-copy-replace -D
// vue.config.js or webpack config
const webpackCopyReplace = require('webpack-copy-replace')
module.exports = {
configureWebpack: {
plugins: [
new webpackCopyReplace({/* API */})
]
}
}
API
baseRetain
{ Boolean } 是否保留原始打包文件 -- 默认 truebasePath
{ String } 原始输出文件路径 -- 默认/base (PS: 输出的文件将会是在原有webpack的输出文件夹下 默认是在 dist/base)error
{ Function } 替换错误回调error({path, content, success})
path
对应options
选项中的replacePath
值content
文件内容success
处理完成回调success(content)
{ content } 回调传参处理后的数据
options
{ ArrayObject } 复制文件参数配置
完整配置
{
baseRetain: true, // 是否保留原始打包文件 -- 默认 true
basePath: '/prod', // 原始输出文件路径 -- 默认 /base
// 替换错误回调
error: ({ path, content, success }) => {
success(content)
},
// 复制文件配置
options: [{
replaceFile: ['js', 'html'], // 需要替换的文件类型 -- 如果不传的话,不会去替换任何内容
replacePath: '/stag1', // 替换后的文件输出目录 -- 不写输出路径的话是不会输出替换后的文件
// 排除的文件
exclude: [
'abc.js'
],
// 替换规则
rules: [
{
reg: new RegExp('test', 'g'), // 需要替换的内容
value: 'abc' // 替换后的值
}
]
}, {
replaceFile: ['js', 'html'], // 需要替换的文件类型 -- 如果不传的话,不会去替换任何内容
replacePath: '/stag2', // 替换后的文件输出目录 -- 不写输出路径的话是不会输出替换后的文件// 排除的文件
exclude: [
'abcdefg.js'
],
// 替换规则
rules: [
{
reg: new RegExp('abc', 'g'), // 需要替换的内容
value: 'def' // 替换后的值
}
]
}]
}