jiek 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +8 -4
- package/dist/cli.d.cts +3 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +8 -4
- package/dist/cli.min.cjs +2 -2
- package/dist/cli.min.js +3 -3
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/rollup/index.cjs +26 -10
- package/dist/rollup/index.js +27 -11
- package/dist/rollup/index.min.cjs +4 -4
- package/dist/rollup/index.min.js +4 -4
- package/package.json +1 -1
- package/src/commands/build.ts +10 -2
- package/src/rollup/base.ts +4 -0
- package/src/rollup/index.ts +36 -8
- package/src/rollup/utils/externalResolver.ts +5 -1
package/package.json
CHANGED
package/src/commands/build.ts
CHANGED
@@ -40,15 +40,21 @@ program
|
|
40
40
|
.description(description)
|
41
41
|
.option('-s, --silent', "Don't display logs.")
|
42
42
|
.option('-e, --entries <ENTRIES>', "Specify the entries of the package.json's 'exports' field.(support glob)")
|
43
|
+
.option('--without-js', 'Do not output js files.')
|
44
|
+
.option('--without-dts', 'Do not output dts files.')
|
43
45
|
.option('-v, --verbose', 'Display debug logs.')
|
44
46
|
.action(async ({
|
45
47
|
silent,
|
46
48
|
entries,
|
47
|
-
verbose
|
49
|
+
verbose,
|
50
|
+
withoutJs,
|
51
|
+
withoutDts
|
48
52
|
}: {
|
49
53
|
silent: boolean
|
50
54
|
entries: string
|
51
55
|
verbose: boolean
|
56
|
+
withoutJs: boolean
|
57
|
+
withoutDts: boolean
|
52
58
|
}) => {
|
53
59
|
actionRestore()
|
54
60
|
const { build } = loadConfig()
|
@@ -97,7 +103,9 @@ program
|
|
97
103
|
env: {
|
98
104
|
...process.env,
|
99
105
|
JIEK_ROOT: wd,
|
100
|
-
JIEK_ENTRIES: entries
|
106
|
+
JIEK_ENTRIES: entries,
|
107
|
+
JIEK_WITHOUT_JS: String(withoutJs),
|
108
|
+
JIEK_WITHOUT_DTS: String(withoutDts)
|
101
109
|
}
|
102
110
|
})
|
103
111
|
const bars: Record<string, ReturnType<typeof multiBars.create>> = {}
|
package/src/rollup/base.ts
CHANGED
@@ -15,6 +15,8 @@ export interface ConfigGenerateContext {
|
|
15
15
|
conditionals: string[]
|
16
16
|
}
|
17
17
|
|
18
|
+
export type OutputControl = boolean | ((context: ConfigGenerateContext) => boolean)
|
19
|
+
|
18
20
|
export interface TemplateOptions {
|
19
21
|
/**
|
20
22
|
* When the user configures type: module, the generated output from entry points that don't
|
@@ -39,6 +41,8 @@ export interface TemplateOptions {
|
|
39
41
|
dir?: Mapping2ROO<'dir'>
|
40
42
|
sourcemap?: Mapping2ROO<'sourcemap'>
|
41
43
|
strict?: Mapping2ROO<'strict'>
|
44
|
+
js?: OutputControl
|
45
|
+
dts?: OutputControl
|
42
46
|
}
|
43
47
|
plugins?:
|
44
48
|
| InputPluginOption
|
package/src/rollup/index.ts
CHANGED
@@ -33,13 +33,17 @@ interface PackageJSON {
|
|
33
33
|
|
34
34
|
const {
|
35
35
|
JIEK_ROOT,
|
36
|
-
JIEK_ENTRIES
|
36
|
+
JIEK_ENTRIES,
|
37
|
+
JIEK_WITHOUT_JS,
|
38
|
+
JIEK_WITHOUT_DTS
|
37
39
|
} = process.env
|
38
40
|
const WORKSPACE_ROOT = JIEK_ROOT ?? getWorkspaceDir()
|
39
41
|
const COMMON_OPTIONS = {} satisfies RollupOptions
|
40
42
|
const COMMON_PLUGINS = [
|
41
43
|
json()
|
42
44
|
]
|
45
|
+
const WITHOUT_JS = JIEK_WITHOUT_JS === 'true'
|
46
|
+
const WITHOUT_DTS = JIEK_WITHOUT_DTS === 'true'
|
43
47
|
|
44
48
|
const config = loadConfig({
|
45
49
|
root: WORKSPACE_ROOT
|
@@ -88,6 +92,22 @@ const resolveBuildPlugins = (context: ConfigGenerateContext, plugins: TemplateOp
|
|
88
92
|
return { js, dts }
|
89
93
|
}
|
90
94
|
|
95
|
+
const resolveOutputControls = (
|
96
|
+
context: ConfigGenerateContext,
|
97
|
+
output: TemplateOptions['output']
|
98
|
+
): { js: boolean; dts: boolean } => ({
|
99
|
+
js: typeof output?.js === 'boolean'
|
100
|
+
? output.js
|
101
|
+
: typeof output?.js === 'function'
|
102
|
+
? output.js(context)
|
103
|
+
: true,
|
104
|
+
dts: typeof output?.dts === 'boolean'
|
105
|
+
? output.dts
|
106
|
+
: typeof output?.dts === 'function'
|
107
|
+
? output.dts(context)
|
108
|
+
: true
|
109
|
+
})
|
110
|
+
|
91
111
|
const resolveWorkspacePath = (p: string) => resolve(WORKSPACE_ROOT, p)
|
92
112
|
|
93
113
|
const pascalCase = (str: string) =>
|
@@ -212,8 +232,10 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
|
|
212
232
|
}
|
213
233
|
const jsOutputSuffix = extname(output)
|
214
234
|
const tsOutputSuffix = jsOutputSuffix.replace(/(\.[cm]?)js$/, '.d$1ts')
|
215
|
-
|
216
|
-
|
235
|
+
const { js: jsOutput, dts: dtsOutput } = resolveOutputControls(context, build.output)
|
236
|
+
const rollupOptions: RollupOptions[] = []
|
237
|
+
if (jsOutput && !WITHOUT_JS) {
|
238
|
+
rollupOptions.push({
|
217
239
|
input: inputObj,
|
218
240
|
external,
|
219
241
|
output: [
|
@@ -268,8 +290,10 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
|
|
268
290
|
}),
|
269
291
|
jsPlugins
|
270
292
|
]
|
271
|
-
}
|
272
|
-
|
293
|
+
})
|
294
|
+
}
|
295
|
+
if (dtsOutput && !WITHOUT_DTS) {
|
296
|
+
rollupOptions.push({
|
273
297
|
input: inputObj,
|
274
298
|
external,
|
275
299
|
output: [
|
@@ -304,7 +328,10 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
|
|
304
328
|
outDir: 'dist',
|
305
329
|
declaration: true,
|
306
330
|
// https://github.com/Swatinem/rollup-plugin-dts/issues/143
|
307
|
-
preserveSymlinks: false
|
331
|
+
preserveSymlinks: false,
|
332
|
+
// Expected '{', got 'type' (Note that you need plugins to import files that are not JavaScript)
|
333
|
+
// https://github.com/Swatinem/rollup-plugin-dts/issues/96
|
334
|
+
noEmit: false
|
308
335
|
}
|
309
336
|
}),
|
310
337
|
progress({
|
@@ -318,8 +345,9 @@ const generateConfigs = (context: ConfigGenerateContext, options: TemplateOption
|
|
318
345
|
}),
|
319
346
|
dtsPlugins
|
320
347
|
]
|
321
|
-
}
|
322
|
-
|
348
|
+
})
|
349
|
+
}
|
350
|
+
return rollupOptions
|
323
351
|
}
|
324
352
|
|
325
353
|
export function template(packageJSON: PackageJSON): RollupOptions[] {
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import fs from 'node:fs'
|
2
|
+
import { builtinModules } from 'node:module'
|
2
3
|
|
3
4
|
const EXCLUDE_SUFFIX = [
|
4
5
|
'te?xt',
|
@@ -18,11 +19,14 @@ export default function(jsonOrPath: string | Record<string, unknown> = process.c
|
|
18
19
|
if (!name) {
|
19
20
|
throw new Error('package.json must have a name field')
|
20
21
|
}
|
22
|
+
|
21
23
|
const external = <(string | RegExp)[]> Object
|
22
24
|
.keys(dependencies)
|
23
25
|
.concat(Object.keys(peerDependencies))
|
24
26
|
.concat(Object.keys(optionalDependencies))
|
25
|
-
|
27
|
+
.concat(builtinModules)
|
28
|
+
|
29
|
+
return [...new Set(external)]
|
26
30
|
.map(dep => new RegExp(`^${dep}(/.*)?$`))
|
27
31
|
.concat([
|
28
32
|
new RegExp(`^${name}(/.*)?(?<!${EXCLUDE_SUFFIX.map(suffix => `\\.${suffix}`).join('|')})$`),
|