jiek 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -79,8 +79,129 @@ yarn add -D jiek
79
79
 
80
80
  ## CLI
81
81
 
82
- ```text
83
- Usage: jk [options] [command]
82
+ ```bash
83
+ jk/jiek [options] [command]
84
+ jb/jiek-build [options] [filters/entries]
85
+ ```
86
+
87
+ ### 自定义构建入口
88
+
89
+ 你可以通过 `--entries` 来指定构建入口,这里的入口定义是基于 `package.json` 中的 `exports` 字段来进行的。
90
+
91
+ ```bash
92
+ jb -e .
93
+ jb --entries .
94
+ jb --entries ./foo
95
+ jb --entries ./foo,./bar
96
+ ```
97
+
98
+ 当你的项目是一个非 `monorepo` 项目时,你可以直接通过 `jb [entries]` 来进行构建。
99
+
100
+ ```bash
101
+ jb .
102
+ jb ./foo
103
+ jb ./foo,./bar
104
+ ```
105
+
106
+ ### 过滤器
107
+
108
+ 你可以通过 `--filter` 来过滤需要构建的包,我们使用了和 pnpm 一样的过滤器规则,所以你可以在这里查阅 [pnpm 的过滤器规则](https://pnpm.io/filtering)
109
+
110
+ ```bash
111
+ jb --filter @monorepo/*
112
+ jb --filter @monorepo/utils
113
+ jb -f utils
114
+ ```
115
+
116
+ 当你的项目是一个 `monorepo` 项目时,你可以直接通过 `jb [filters]` 来进行构建。
117
+
118
+ ```bash
119
+ jb @monorepo/*
120
+ jb @monorepo/utils
121
+ jb utils
122
+ ```
123
+
124
+ ### 自定义构建工具
125
+
126
+ 我们支持多种构建工具,你可以通过 `--type <type: esbuild | swc>` 来指定构建工具。
127
+
128
+ - 默认会使用 `esbuild`(`rollup-plugin-esbuild`)
129
+ - 如果你的依赖空间中存在 `swc`(`rollup-plugin-swc3`) 依赖,那么我们会自动切换到 `swc`
130
+ - 如果俩个都存在,默认会使用 `esbuild`
131
+
132
+ ```bash
133
+ jb --type swc
134
+ ```
135
+
136
+ > 如果使用类型的构建工具依赖没有安装,那我们会提示你安装对应的依赖。
137
+
138
+ ### 最小化
139
+
140
+ 我们提供了多种方式来支持最小化的构建,默认会自动启用,同时我们默认会选择使用构建工具内置的最小化插件来进行最小化。
141
+
142
+ - 你可以通过 `--minType` 选择使用 `terser`(`rollup-plugin-terser`) 来进行最小化,如果你没有安装 `terser`,我们会提示你安装。
143
+ - 你可以通过 `--noMin` 来关闭生成最小化产物。
144
+ - 你可以通过 `--onlyMinify` 来只生成最小化产物,这样我们会直接替换原产物路径,而不是添加一个 `.min` 后缀再进行输出。
145
+
146
+ ```bash
147
+ jb --minType terser
148
+ jb --onlyMinify
149
+ ```
150
+
151
+ ### 去除指定构建内容
152
+
153
+ 你可以通过 `--noJs` 来关闭 `js` 的构建,通过 `--noDts` 来关闭 `dts` 的构建。
154
+
155
+ ```bash
156
+ jb --noJs
157
+ jb --noDts
158
+ ```
159
+
160
+ ### 自定义产物目录
161
+
162
+ 你可以通过 `--outdir` 来指定产物目录。
163
+
164
+ ```bash
165
+ jb --outdir lib
166
+ ```
167
+
168
+ ### 监听模式
169
+
170
+ 你可以通过 `--watch` 来开启监听模式。
171
+
172
+ ```bash
173
+ jb --watch
174
+ ```
175
+
176
+ ### 外部模块
177
+
178
+ 除了通过 `package.json` 中的 `dependencies`、`peerDependencies`、`optionalDependencies` 来自动标记外部模块外,你还可以通过 `--external` 来手动标记外部模块。
179
+
180
+ ```bash
181
+ jb --external react
182
+ jb --external react,react-dom
183
+ ```
184
+
185
+ ### 关闭产物的自动清理
186
+
187
+ 你可以通过 `--noClean` 来关闭产物的自动清理。
188
+
189
+ ```bash
190
+ jb --noClean
191
+ ```
192
+
193
+ ### 自定义 tsconfig 路径
194
+
195
+ 你可以通过 `--tsconfig` 来指定 `tsconfig` 的路径。
196
+
197
+ ```bash
198
+ jb --tsconfig ./tsconfig.custom-build.json
199
+ ```
200
+
201
+ 同时你还可以通过 `--dtsconfig` 来指定 `dts` 插件使用的 `tsconfig` 的路径(当然我不建议你这么做)。
202
+
203
+ ```bash
204
+ jb --dtsconfig ./tsconfig.custom-dts.json
84
205
  ```
85
206
 
86
207
  ## 为什么不使用 X?
@@ -116,7 +116,7 @@ async function getSelectedProjectsGraph(filter = commander.program.getOptionValu
116
116
 
117
117
  var name = "jiek";
118
118
  var type = "module";
119
- var version = "2.1.1";
119
+ var version = "2.1.2";
120
120
  var description$1 = "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.";
121
121
  var author = "YiJie <yijie4188@gmail.com>";
122
122
  var repository = {
@@ -108,7 +108,7 @@ async function getSelectedProjectsGraph(filter = program.getOptionValue("filter"
108
108
 
109
109
  var name = "jiek";
110
110
  var type = "module";
111
- var version = "2.1.1";
111
+ var version = "2.1.2";
112
112
  var description$1 = "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.";
113
113
  var author = "YiJie <yijie4188@gmail.com>";
114
114
  var repository = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "jiek",
3
3
  "type": "module",
4
- "version": "2.1.2",
4
+ "version": "2.1.3",
5
5
  "description": "A lightweight toolkit for compiling and managing libraries based on `package.json` metadata and suitable for `Monorepo`.",
6
6
  "author": "YiJie <yijie4188@gmail.com>",
7
7
  "repository": {