pai-project 是能使前端 工程一体化 插件。
安装
npm install @flyriselink/pai-project -S
更新
npm update @flyriselink/pai-project
配置初始化
根目录下新建文件 pai-project/index.js
const PaiProject = require('@flyriselink/pai-project')
PaiProject({
process: process,
// log: false,
})
参数说明
参数 | 说明 | 默认值 |
---|---|---|
process | 环境参数(必填) | process |
main | 主入口 | std |
target | 代码集成入口 | application |
log | 是否输出日志 | true |
parentDir | 项目父级文件夹 | project |
- | ||
format | 项目文件夹格式:需{name} | {name} |
devCmd | 项目命令: 开发运行 | npm run dev |
buildCmd | 项目命令: 编译 | npm run build:prod |
prodCmd | 项目命令: 启动 | npm run prod |
- | ||
isCompare | 进入文件夹差异对比 | |
projectMap | 枚举指定项目执行顺序 | { hngh: ['std-v1', 'hngh'] } |
使用
- 先将代码移入到文件夹:标准版 [std]
- 项目代码,新建 [project] 文件夹下,新建 [项目A] 文件夹,根据 [std] 目录层级:新增、修改文件
- 与 [std] 内代码一样的,不需建在项目下
- 项目启动:最终以 [application] 文件夹下代码进行:运行/编译
- 设置 git 忽略 [application] 文件夹内容提交
├─application // 代码运行入口(不需提交git)
├─pai-project // 初始化配置文件
├─std // 标准版
│ ├─... // 代码
│ └─...
├─project // 项目总目录
│ ├─项目A // 项目A
│ └─项目B // 项目B
│ ├─... // 代码
│ └─...
// 更改 package.json
{
"scripts": {
"p-i": "cross-env MODE=install node pai-project/index",
"p-install": "cross-env MODE=install node pai-project/index",
"dev": "cross-env MODE=dev node pai-project/index",
"build": "cross-env MODE=build node pai-project/index",
...
}
}
// 以上为:安装项目依赖、启动项目、编译项目
// 安装插件依赖
$ npm i
// 安装项目依赖(注意:需安装两次依赖)
$ npm run p-i -P 项目名称
// 运行项目
$ npm run dev -P 项目名称
// 编译
$ npm run build -P 项目名称
// 1.开启 isCompare 属性
// 2.执行对比 (在 [package.json] 添加 compare 命令)
$ npm run compare 项目名称
// 3.对比说明:若项目文件与标准版[无差异],则会被自动删除(可关闭自动删除: autoDel)
-
优化
- 支持项目依赖另外项目; 增加 projectMap 参数,枚举指定项目执行顺序
-
优化
- 文件同步时优化
-
优化
- 初始化时,需传入 process
-
优化
- 文件夹对比差异,删除空文件夹
-
新增
- 文件夹对比差异
-
新增
- 工程一体化 all-in-one