0.0.12 • Published 2 years ago

@lywzx/rollup-build-scripts v0.0.12

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@lywzx/rollup-build-scripts

基于于rollup,只需要简单配置,即快完成包的快速构建功能。

安装

yarn add @lywzx/rollup-build-scripts --dev // 或 npm install @lywzx/rollup-build-scripts --save-dev

配置

在package.json中,scripts字段,添加如下配置:

"dev": "node --max_old_space_size=8192 node_modules/rollup/dist/bin/rollup -c node_modules/@lywzx/rollup-build-scripts/rollup.config.js -w",
"build": "node --max-old-space-size=8192 node_modules/@lywzx/rollup-build-scripts/index.js",

支持在命令行中传递参数:

  • --ts 启用typescript构建
  • --tsconfig 指定tsconfig.json文件路径
  • --input 指定构建时,rollup的输入文件
  • --input-prefix 如果文件位于包的src目录下,可以填写此字段
  • --output-prefix 包的输出路径,相对于构建包的目录,默认为dist; 当 --output-root-path 存在时,此参数不起作用
  • --output-root-path 按包名统一输出到当前目录下,一般开发环境下会使用到
  • --output-lib 构建包内文件时,输出的默认路径
  • --rollup-path 安装的rollup的路径,默认node_modules/.bin/rollup
  • --workspace 当多包开发时,启用workspace存在时,将会自动从workspace下中查询
  • --only-package 限制构建的包(支持*匹配包名)
  • --only-entry 限制构建类型
    • minify 仅构建非压缩类型
    • es,umd,cjs 仅构构建以上类型入口
    • browser 仅构建浏览器的入口
  • --sourcemap 是否需要生成sourcemap
  • --r-config 指定配置文件

如果以上参数,还不够功能,可以使用配置文件,创建.rollup.config.js至项目根目录,命令行中的参数将覆盖配置文件中的参数,配置示例;

/**
 * @type {import('@lywzx/rollup-build-scripts').IRollupConfig}
 */
module.exports = {
    ts: true,
    watch: true,
    // typescript 声明文件合并
    dts: true,
    // tsconfig 文件位置
    tsconfig: argv.tsconfig ?? config.tsconfig ?? 'tsconfig.json',
    // 覆盖tsconfig配置
    tsconfigOverride: '',
    // 是否载入json插件
    json: false,
    // 构建入口文件名称
    input: 'index.ts',
    // 入口文件路径前缀
    inputPrefix: 'src',
    // 构建输出文件前缀
    // <%= package.name %> v<%= package.version%>
    // (c) <%= new Date().getFullYear() %> <%= package.author%>
    // @license <%= package.license %>
    banner: '',
    // 构建后输出路径
    outPrefix: '',
    // 构建后输入路径前缀
    outLibrary: '',
    // 将所有包输出到某个目录下
    outRootPath: '',
    // rollup命令所处位置
    rollupPath: 'node_modules/.bin/rollup',
    // 当前工作区目录
    workspace: ['packages'],
    // 只构建某些包
    onlyPackage: '',
    // 是否需要生成sourcemap
    sourcemap: false,
    // buble插件配置
    buble: {},
    // commonjs插件配置
    commonjs: {},
    // resolve时使用的扩展名
    extensions: {},
    // replace插件使用配置
    replace: {},
    // 多包模式下,构建时,是否需要把其他包作为external
    externalEachOther: config.externalEachOther ?? false,
    // 需要external的包,如lodash
    external: {},
    // 输出是全局的名称
    outputGlobals: config.outputGlobals ?? {},
    // 辅助函数,用来过滤某些入口是否构建或不构建
    onlyEntry: (input: IEntryOption, pkg: IPackageConfig) => {
        // 返回一个true或false,来控制是否要构建当前entry
        return true; 
    },
    // 辅助函数,可以在构建前,修改rollup的配置文件内容
    handleConfig(config: InputOptions, pkg: IPackageConfig): InputOptions {
        // 这里可以处理自定议的逻辑
        return config;
    },
}

包开发输出到某个目录

通常项目开发过程,需要与其他项目联调,需要将修改的内容,构建后输入到某个目录,可以使用如下命令(假定完成了上面的配置工作):

yarn dev --output-root-path=../project-demo/node_modules --only-package=@test/package1,@test/package2
0.0.12

2 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.3-alpha.0

3 years ago

0.0.1

3 years ago