rollup的打包逻辑和配置和执行命令和常用的辅助插件

最近要离职了,得记录一下这几年的技术要点,不涉及开发成果,更多是是一些插件的应用思路。
这几天做交接,感觉自己做的东西还是蛮不错的。
这里记录一下rollup使用的插件,和使用形式。其中第一部分为基础配置,第二部分为个性化配置。
这套,支持ts的打包,参数通过命令传入调取,npm run component – --pel njsdj0

${argv[6]}

import { babel } from "@rollup/plugin-babel";
import json from "@rollup/plugin-json";
import commonjs from "@rollup/plugin-commonjs";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import replace from "@rollup/plugin-replace";
import { uglify } from "rollup-plugin-uglify";

var baseConfig = {
    plugins: [
        ...(process.env.NODE_ENV ? [
            replace({
                "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
            }),
        ] : []),
        nodeResolve(),
        json(),

        babel(),
        commonjs(),

        // 代码压缩插件,按需打开使用
        // uglify(),
    ],
 
};
export { baseConfig }
import { banner } from "./helper";
import { baseConfig } from "./rollup-base-config";
import postcss from "rollup-plugin-postcss";
import autoprefixer from "autoprefixer";
import cssnano from "cssnano";
import { argv } from "process";
import typescript from '@rollup/plugin-typescript';

baseConfig.plugins.push(
  typescript({ compilerOptions: {lib: ["es5", "es6", "dom"], target: "es6"}}),
    postcss({
        plugins: [autoprefixer, cssnano],
    })
);

//  npm run component -- --pel njsdj0 调用命令

var inputPath = `src/pels/${argv[6]}/component.ts`;
const config = Object.assign(baseConfig, {
    //此处入口文件发生修改
    input: inputPath,
    output: {
        file: "./out/components/" + argv[6] + ".js",
        format: "esm",
        banner: banner,
        extend: false,
    },
});

module.exports = config;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值