/neaten-transfer-webpack-plugin

Put together to folder and Transfer to new document location

Primary LanguageJavaScriptMIT LicenseMIT


NPM version GitHub license

neaten-transfer-webpack-plugin

用于将多个不在同级目录中文件或多个不在同级目录中文件夹复制到另一个文件中的webpack plugin,会在webpack打包编译结束之后执行。

使用方法

首先,你需要安装这个插件,如下:

npm install neaten-transfer-webpack-plugin --save-dev

配置 webpack plugins 参数

const NeatenTransferWebpackPlugin = require('neaten-transfer-webpack-plugin')

module.exports = {
    //...
    plugins: [new NeatenTransferWebpackPlugin({
        from: [{
            path: path.resolve(__dirname, './'),
            name: 'dist'
        }, {
            path: path.resolve(__dirname, './'),
            name: 'package.json'
        }],
        to: {
            path: path.resolve(__dirname, './'),
            name: 'new',
            cover: true
        }
    })]
    //...
};

插件参数描述

Name Type Description
from Array 需要被复制的文件或文件夹
to Object 被复制到的位置

下面是每个参数的详细描述

from

需要被复制的文件或文件夹,数组类型,支持多个

Name type required Description
path require yes 文件所在位置
name String yes 文件名
rename String no 重命名后的新名字
[
    {
        path: path.resolve(__dirname, './'),    // 文件所在位置
        name: 'dist',  // 文件名
        rename:'dist2' // 重命名后的新名字,不传则不重命名
    }
]

to

被复制到的位置,对象类型

Name type required Description
path String yes 文件夹所在位置
name String yes 文件夹名
cover Boolean no 是否覆盖该文件夹下所有的文件 ,
{
    path: path.resolve(__dirname, './'),    // 文件所在位置
    name: 'dist',  // 文件名
    cover: true    // true:相同的文件覆盖,不同的文件删除;false:相同的文件覆盖,不同的文件保留;默认为true
}

DOME

# 原文件位置如下,可复制为dist 和 config.js 到 new 文件夹下
- root
    - dist
        - a.js
        - b.js
    - config.js

# 复制后的文件位置:
- root
    - dist
        - a.js
        - b.js
    - config.js
    - new
        - dist
            - a.js
            - b.js
        - config.js

# 插件配置如下:
plugins: [new NeatenTransferWebpackPlugin({
    from: [{
        path: path.resolve(__dirname, './'),
        name: 'dist'
    }, {
        path: path.resolve(__dirname, './'),
        name: 'package.json'
    }],
    to: {
        path: path.resolve(__dirname, './'),
        name: 'new',
        cover: true
    }
})];