- 该项目已废弃,因为实践中发现,如果每个入口打包相当耗时且能不打包就不打包时才需要进行缓存,而缓存最好的方式不是提交git,而是通过远程仓库方式构建时拉取会比较好。
- 多入口项目中,使用缓存是没有办法的办法,在考虑使用缓存前,尽可能通过依赖分析来减少每个入口遍历的文件,这样比使用缓存强的多。
- 另外,cross-spawn实际在linux中使用也有问题,请使用原生child_process代替。
- 由于经常制作单页活动页,在活动越来越多后导致不好管理以及打包缓慢等缺点,所以使用该脚手架制作打包缓存,进行更新。
安装:
npm i create-activity-script -g
Commands:
create|c [options] <project-name> create project
collect|co [options] collect all project and generate diff file
build|b [options] diff file and build copy to dist
help [command] display help for command
- 用来创建个项目,可以通过-b 指定位置,比如执行命令的目录下的 package 文件夹里创建,则-b package 即可。
- 也可以自己创建,但是需要修改 scripts,publicPath,outputPath
create project
Options:
-b, --base <base> base dir such as package
-h, --help display help for command
- 用来记录文件 hash 值,当包有改动时,hash 值会完全变化,否则 hash 值不变,直接使用缓存不进行打包。
- 该操作默认会记录 hash 值到执行命令的目录下,可以通过-o 进行修改输出位置,-d 与-p 为检测的开发模式或者生产模式的输出文件夹。
collect all project and generate diff file
Options:
-b, --base <base> base dir such as package
-d, --dev <dev> collect dev dir name (default: "develop")
-p, --prod <prod> collect dev dir name (default: "prod")
-o, --out <out> output diff file
-h, --help display help for command
- 用来生成最终打包的文件。会先进行对比配置文件的 hash 值,如果不一样,则会对该包进行打包,之后用生成的文件复制进最终的目录。
- 可以通过-m 来表示是开发模式还是生产模式。
- 默认最后生成的目录是 dist。
diff file and build copy to dist
Options:
-b, --base <base> base dir such as package
-d, --dev <dev> collect dev dir name (default: "develop")
-p, --prod <prod> collect dev dir name (default: "prod")
-o, --out <out> output diff file
-m, --mode <mode> dev or prod (default: "dev")
-h, --help
- 结合 lerna 使用
- 使用 lerna 初始化项目:
lerna init
- 创建项目
create-activity-script create -b packages packagea
create-activity-script create -b packages packageb
create-activity-script create -b packages packagec
create-activity-script create -b packages packaged
create-activity-script create -b packages packagee
- 依赖共享
lerna link convert
- 安装依赖
lerna bootstrap
- 生成 develop 产物
create-activity-script build -b packages
- 生成 prodution 产物
create-activity-script build -b packages -m prod
- 1.0.5 支持 lerna
- 1.0.4 去除 create 中自动安装依赖
- 1.0.3 去除模板中复制 gitignore
- 1.0.2 build 与 collect 增加-i 可以一键忽略选择,全部继续 , 修复环境打包记录的 bug。