pob 37.0.0 → 38.0.0
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/lib/generators/app/PobAppGenerator.js +0 -1
- package/lib/generators/common/babel/CommonBabelGenerator.js +7 -7
- package/lib/generators/common/format-lint/CommonLintGenerator.js +15 -12
- package/lib/generators/common/testing/CommonTestingGenerator.js +3 -3
- package/lib/generators/core/ci/CoreCIGenerator.js +24 -5
- package/lib/generators/core/ci/templates/github-action-documentation-workflow.yml.ejs +2 -2
- package/lib/generators/core/ci/templates/github-action-push-workflow-split.yml.ejs +10 -10
- package/lib/generators/core/ci/templates/github-action-push-workflow.yml.ejs +3 -3
- package/lib/generators/lib/PobLibGenerator.js +0 -1
- package/lib/generators/monorepo/PobMonorepoGenerator.js +49 -43
- package/lib/utils/packageManagerUtils.js +7 -5
- package/package.json +5 -5
|
@@ -288,7 +288,6 @@ export default class PobAppGenerator extends Generator {
|
|
|
288
288
|
documentation: false,
|
|
289
289
|
codecov: this.appConfig.codecov,
|
|
290
290
|
ci: this.options.ci,
|
|
291
|
-
ciPushWorkflow: this.options.ci,
|
|
292
291
|
packageManager: this.options.packageManager,
|
|
293
292
|
isApp: true,
|
|
294
293
|
splitCIJobs: false,
|
|
@@ -332,13 +332,13 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
332
332
|
}
|
|
333
333
|
const isLibraryRollupPlugin = pkg.name.includes("rollup-plugin");
|
|
334
334
|
|
|
335
|
-
packageUtils.addOrRemoveDevDependencies(
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
);
|
|
335
|
+
// packageUtils.addOrRemoveDevDependencies(
|
|
336
|
+
// pkg,
|
|
337
|
+
// (useBabel && pkg.pob.jsx) ||
|
|
338
|
+
// (pkg.devDependencies?.["@babel/preset-react"] &&
|
|
339
|
+
// (isLibraryRollupPlugin || pkg.name === "alouette-icons")),
|
|
340
|
+
// ["@babel/preset-react"],
|
|
341
|
+
// );
|
|
342
342
|
|
|
343
343
|
packageUtils.removeDevDependencies(pkg, [
|
|
344
344
|
"babel-preset-env", // now @babel/preset-env
|
|
@@ -316,7 +316,12 @@ export default class CommonFormatLintGenerator extends Generator {
|
|
|
316
316
|
!pkg.name.startsWith("@pob/eslint-config") &&
|
|
317
317
|
pkg.name !== "@pob/use-eslint-plugin"
|
|
318
318
|
) {
|
|
319
|
-
|
|
319
|
+
// @pob/eslint-config is provided through @pob/root (which re-exports it
|
|
320
|
+
// via "@pob/root/eslint-config"), so projects only need @pob/root.
|
|
321
|
+
if (pkg.name !== "@pob/root") {
|
|
322
|
+
packageUtils.addDevDependencies(pkg, ["@pob/root"]);
|
|
323
|
+
}
|
|
324
|
+
packageUtils.removeDevDependencies(pkg, ["@pob/eslint-config"]);
|
|
320
325
|
packageUtils.addOrRemoveDevDependencies(
|
|
321
326
|
pkg,
|
|
322
327
|
shouldHavePluginsDependencies,
|
|
@@ -373,7 +378,7 @@ export default class CommonFormatLintGenerator extends Generator {
|
|
|
373
378
|
|
|
374
379
|
return {
|
|
375
380
|
imports: [
|
|
376
|
-
'import pobConfig from "@pob/eslint-config"',
|
|
381
|
+
'import pobConfig from "@pob/root/eslint-config"',
|
|
377
382
|
useTypescript &&
|
|
378
383
|
hasReact &&
|
|
379
384
|
'import pobTypescriptConfigReact from "@pob/eslint-config-typescript-react"',
|
|
@@ -385,25 +390,23 @@ export default class CommonFormatLintGenerator extends Generator {
|
|
|
385
390
|
if (!useTypescript) {
|
|
386
391
|
return [
|
|
387
392
|
useNode
|
|
388
|
-
? `...pobConfig
|
|
389
|
-
: `...pobConfig
|
|
393
|
+
? `...pobConfig.configs.node${pkg.type === "commonjs" ? "Commonjs" : "Module"}`
|
|
394
|
+
: `...pobConfig.configs.base${pkg.type === "commonjs" ? "Commonjs" : "Module"}`,
|
|
390
395
|
];
|
|
391
396
|
}
|
|
392
397
|
if (!hasReact) {
|
|
393
398
|
return [
|
|
394
399
|
useNode
|
|
395
|
-
? "...pobConfig
|
|
396
|
-
: "...pobConfig
|
|
400
|
+
? "...pobConfig.configs.node"
|
|
401
|
+
: "...pobConfig.configs.base",
|
|
397
402
|
];
|
|
398
403
|
}
|
|
399
404
|
|
|
400
405
|
return [
|
|
401
|
-
useNode
|
|
402
|
-
|
|
403
|
-
: "...pobConfig(import.meta.url).configs.base",
|
|
404
|
-
this.options.isApp && "...pobConfig(import.meta.url).configs.app",
|
|
406
|
+
useNode ? "...pobConfig.configs.node" : "...pobConfig.configs.base",
|
|
407
|
+
this.options.isApp && "...pobConfig.configs.app",
|
|
405
408
|
pkg.dependencies?.["react-native-web"] &&
|
|
406
|
-
'...pobTypescriptConfigReact
|
|
409
|
+
'...pobTypescriptConfigReact.configs["react-native-web"]',
|
|
407
410
|
];
|
|
408
411
|
})().filter(Boolean),
|
|
409
412
|
};
|
|
@@ -412,7 +415,7 @@ export default class CommonFormatLintGenerator extends Generator {
|
|
|
412
415
|
const isMonorepoRoot =
|
|
413
416
|
this.options.monorepo || Boolean(inMonorepo && inMonorepo.root);
|
|
414
417
|
if (isMonorepoRoot && useTypescript) {
|
|
415
|
-
flatCascade.push("...pobConfig
|
|
418
|
+
flatCascade.push("...pobConfig.configs.monorepo");
|
|
416
419
|
}
|
|
417
420
|
|
|
418
421
|
const eslintrcBadPath = this.destinationPath(".eslintrc");
|
|
@@ -39,10 +39,10 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
39
39
|
description: "ci",
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
this.option("
|
|
42
|
+
this.option("disablePushWorkflow", {
|
|
43
43
|
type: Boolean,
|
|
44
44
|
required: true,
|
|
45
|
-
description: "push workflow
|
|
45
|
+
description: "disable push workflow",
|
|
46
46
|
});
|
|
47
47
|
|
|
48
48
|
this.option("typescript", {
|
|
@@ -130,7 +130,7 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
130
130
|
testing: this.options.enable,
|
|
131
131
|
testRunner: this.options.runner,
|
|
132
132
|
e2eTesting: this.options.e2eTesting,
|
|
133
|
-
|
|
133
|
+
disablePushWorkflow: this.options.disablePushWorkflow,
|
|
134
134
|
build: this.options.build,
|
|
135
135
|
typescript: this.options.typescript,
|
|
136
136
|
documentation: this.options.documentation,
|
|
@@ -20,10 +20,10 @@ export default class CoreCIGenerator extends Generator {
|
|
|
20
20
|
description: "enable ci",
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
-
this.option("
|
|
23
|
+
this.option("disablePushWorkflow", {
|
|
24
24
|
type: Boolean,
|
|
25
25
|
default: true,
|
|
26
|
-
description: "
|
|
26
|
+
description: "disable push workflow",
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
this.option("build", {
|
|
@@ -119,7 +119,7 @@ export default class CoreCIGenerator extends Generator {
|
|
|
119
119
|
this.options.testing && !!pkg.scripts && !!pkg.scripts.test;
|
|
120
120
|
const build = this.options.build;
|
|
121
121
|
|
|
122
|
-
if (this.options.
|
|
122
|
+
if (!this.options.disablePushWorkflow) {
|
|
123
123
|
await copyAndFormatTpl(
|
|
124
124
|
this.fs,
|
|
125
125
|
this.templatePath(
|
|
@@ -151,8 +151,20 @@ export default class CoreCIGenerator extends Generator {
|
|
|
151
151
|
inMonorepo.pobConfig?.project?.type === "lib",
|
|
152
152
|
nodeLatestMajorVersion: latestLTS,
|
|
153
153
|
nodeMaintenanceMajorVersion: maintenanceLTS,
|
|
154
|
-
packageManagerRun,
|
|
155
|
-
|
|
154
|
+
packageManagerRun: (script, packagePath) => {
|
|
155
|
+
return packageManagerRun(
|
|
156
|
+
this.options.packageManager,
|
|
157
|
+
script,
|
|
158
|
+
packagePath,
|
|
159
|
+
);
|
|
160
|
+
},
|
|
161
|
+
packageManagerExec: (command, packagePath) => {
|
|
162
|
+
return packageManagerExec(
|
|
163
|
+
this.options.packageManager,
|
|
164
|
+
command,
|
|
165
|
+
packagePath,
|
|
166
|
+
);
|
|
167
|
+
},
|
|
156
168
|
},
|
|
157
169
|
);
|
|
158
170
|
ciContexts.push(
|
|
@@ -188,6 +200,13 @@ export default class CoreCIGenerator extends Generator {
|
|
|
188
200
|
this.destinationPath(".github/workflows/gh-pages.yml"),
|
|
189
201
|
{
|
|
190
202
|
packageManager: this.options.packageManager,
|
|
203
|
+
packageManagerRun: (script, packagePath) => {
|
|
204
|
+
return packageManagerRun(
|
|
205
|
+
this.options.packageManager,
|
|
206
|
+
"docs:build",
|
|
207
|
+
packagePath,
|
|
208
|
+
);
|
|
209
|
+
},
|
|
191
210
|
disableYarnGitCache: this.options.disableYarnGitCache,
|
|
192
211
|
testing: this.options.testing,
|
|
193
212
|
testRunner: this.options.testRunner,
|
|
@@ -58,11 +58,11 @@ jobs:
|
|
|
58
58
|
<% if (testRunner === 'node') { -%>
|
|
59
59
|
|
|
60
60
|
- name: Generate Coverage
|
|
61
|
-
run: NODE_V8_COVERAGE=./docs/coverage <%=
|
|
61
|
+
run: NODE_V8_COVERAGE=./docs/coverage <%= packageManagerRun("test:coverage:generate") %>
|
|
62
62
|
<% } else {-%>
|
|
63
63
|
|
|
64
64
|
- name: Generate Coverage
|
|
65
|
-
run: <%=
|
|
65
|
+
run: <%= packageManagerRun("test:coverage:generate") %>
|
|
66
66
|
<% } -%>
|
|
67
67
|
<% } -%>
|
|
68
68
|
|
|
@@ -46,7 +46,7 @@ jobs:
|
|
|
46
46
|
<% } -%>
|
|
47
47
|
|
|
48
48
|
- name: Checks
|
|
49
|
-
run: <%=
|
|
49
|
+
run: <%= packageManagerRun("checks") %>
|
|
50
50
|
|
|
51
51
|
<% } -%>
|
|
52
52
|
<% if (build) { -%>
|
|
@@ -91,10 +91,10 @@ jobs:
|
|
|
91
91
|
<% } -%>
|
|
92
92
|
|
|
93
93
|
- name: Build
|
|
94
|
-
run: <%=
|
|
94
|
+
run: <%= packageManagerRun("build") %>
|
|
95
95
|
|
|
96
96
|
- name: Check nothing was forgotten before commit
|
|
97
|
-
run: <%= packageManagerExec(
|
|
97
|
+
run: <%= packageManagerExec('repository-check-dirty') %>
|
|
98
98
|
|
|
99
99
|
<% } -%>
|
|
100
100
|
lint:
|
|
@@ -140,15 +140,15 @@ jobs:
|
|
|
140
140
|
<% } -%>
|
|
141
141
|
|
|
142
142
|
- name: Format
|
|
143
|
-
run: <%=
|
|
143
|
+
run: <%= packageManagerRun("format:check") %>
|
|
144
144
|
<% if (typescript) { -%>
|
|
145
145
|
|
|
146
146
|
- name: Typescript
|
|
147
|
-
run: <%=
|
|
147
|
+
run: <%= packageManagerRun("tsc") %>
|
|
148
148
|
<% } -%>
|
|
149
149
|
|
|
150
150
|
- name: Eslint
|
|
151
|
-
run: <%=
|
|
151
|
+
run: <%= packageManagerRun("lint:eslint") %>
|
|
152
152
|
<% if (testing) { -%>
|
|
153
153
|
|
|
154
154
|
test:
|
|
@@ -199,11 +199,11 @@ jobs:
|
|
|
199
199
|
|
|
200
200
|
<% if (codecov) { -%>
|
|
201
201
|
- name: Test
|
|
202
|
-
run: <%=
|
|
202
|
+
run: <%= packageManagerRun("test") %>
|
|
203
203
|
if: matrix.node-version != <%= nodeLatestMajorVersion %>
|
|
204
204
|
|
|
205
205
|
- name: Generate Test Coverage
|
|
206
|
-
run: <%=
|
|
206
|
+
run: <%= packageManagerRun("test:coverage:generate") %>
|
|
207
207
|
if: matrix.node-version == <%= nodeLatestMajorVersion %>
|
|
208
208
|
env:
|
|
209
209
|
CI: true
|
|
@@ -217,7 +217,7 @@ jobs:
|
|
|
217
217
|
<% } else { -%>
|
|
218
218
|
|
|
219
219
|
- name: Test
|
|
220
|
-
run: <%=
|
|
220
|
+
run: <%= packageManagerRun("test") %>
|
|
221
221
|
<% } -%>
|
|
222
222
|
<% } -%>
|
|
223
223
|
<% if (e2eTesting) { -%>
|
|
@@ -269,7 +269,7 @@ jobs:
|
|
|
269
269
|
<% } -%>
|
|
270
270
|
|
|
271
271
|
- name: E2E testing
|
|
272
|
-
run: <%=
|
|
272
|
+
run: <%= packageManagerRun("test:e2e", e2eTesting) %>
|
|
273
273
|
<% } -%>
|
|
274
274
|
<% if (isReleasePleaseEnabled) { -%>
|
|
275
275
|
release:
|
|
@@ -84,12 +84,12 @@ jobs:
|
|
|
84
84
|
|
|
85
85
|
- name: Check nothing was forgotten before commit
|
|
86
86
|
if: startsWith(matrix.node-version, '<%= nodeLatestMajorVersion %>.')
|
|
87
|
-
run: <%= packageManagerExec(
|
|
87
|
+
run: <%= packageManagerExec('repository-check-dirty') %>
|
|
88
88
|
<% } -%>
|
|
89
89
|
<% if (codecov) { -%>
|
|
90
90
|
|
|
91
91
|
- name: Generate Test Coverage
|
|
92
|
-
run: <%=
|
|
92
|
+
run: <%= packageManagerRun("test:coverage:generate) %>
|
|
93
93
|
if: startsWith(matrix.node-version, '<%= nodeLatestMajorVersion %>.')
|
|
94
94
|
env:
|
|
95
95
|
CI: true
|
|
@@ -112,7 +112,7 @@ jobs:
|
|
|
112
112
|
<% if (e2eTesting) { -%>
|
|
113
113
|
|
|
114
114
|
- name: E2E testing
|
|
115
|
-
run: <%=
|
|
115
|
+
run: <%= packageManagerRun("test:e2e", e2eTesting) %>
|
|
116
116
|
<% } -%>
|
|
117
117
|
<% if (isReleasePleaseEnabled) { -%>
|
|
118
118
|
|
|
@@ -321,7 +321,6 @@ export default class PobLibGenerator extends Generator {
|
|
|
321
321
|
documentation: !!this.pobjson.documentation,
|
|
322
322
|
codecov: this.pobjson.testing && this.pobjson.testing.codecov,
|
|
323
323
|
ci: this.options.ci,
|
|
324
|
-
ciPushWorkflow: this.options.ci,
|
|
325
324
|
packageManager,
|
|
326
325
|
isApp: false,
|
|
327
326
|
splitCIJobs: false,
|
|
@@ -151,13 +151,19 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
151
151
|
const config = this.config.get("monorepo");
|
|
152
152
|
|
|
153
153
|
if (this.options.updateOnly && config) {
|
|
154
|
-
this.
|
|
155
|
-
this.
|
|
156
|
-
this.config.set("monorepo", this.
|
|
154
|
+
this.pobMonorepoConfig = config;
|
|
155
|
+
this.pobMonorepoConfig.packageNames = this.packageNames;
|
|
156
|
+
this.config.set("monorepo", this.pobMonorepoConfig);
|
|
157
157
|
return;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
this.
|
|
160
|
+
if (this.pobMonorepoConfig.ciPushWorkflow) {
|
|
161
|
+
throw new Error(
|
|
162
|
+
"ciPushWorkflow is deprecated, use disablePushWorkflow instead",
|
|
163
|
+
);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
this.pobMonorepoConfig = await this.prompt([
|
|
161
167
|
{
|
|
162
168
|
type: "confirm",
|
|
163
169
|
name: "ci",
|
|
@@ -169,10 +175,10 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
169
175
|
},
|
|
170
176
|
{
|
|
171
177
|
type: "confirm",
|
|
172
|
-
name: "
|
|
173
|
-
message: "Would you like
|
|
178
|
+
name: "disablePushWorkflow",
|
|
179
|
+
message: "Would you like to DISABLE push workflow ?",
|
|
174
180
|
when: (answers) => answers.ci,
|
|
175
|
-
default: config.
|
|
181
|
+
default: config.disablePushWorkflow,
|
|
176
182
|
},
|
|
177
183
|
{
|
|
178
184
|
type: "confirm",
|
|
@@ -223,8 +229,8 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
223
229
|
default: config ? config.eslint : true,
|
|
224
230
|
},
|
|
225
231
|
]);
|
|
226
|
-
this.
|
|
227
|
-
this.config.set("monorepo", this.
|
|
232
|
+
this.pobMonorepoConfig.packageNames = this.packageNames;
|
|
233
|
+
this.config.set("monorepo", this.pobMonorepoConfig);
|
|
228
234
|
this.config.delete("pob-config");
|
|
229
235
|
}
|
|
230
236
|
|
|
@@ -233,7 +239,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
233
239
|
|
|
234
240
|
const packageNames = this.packageNames;
|
|
235
241
|
const packagePaths = this.packageLocations.filter(
|
|
236
|
-
this.
|
|
242
|
+
this.pobMonorepoConfig.typescript
|
|
237
243
|
? (packagePath) => fs.existsSync(`${packagePath}/tsconfig.json`)
|
|
238
244
|
: Boolean,
|
|
239
245
|
);
|
|
@@ -249,17 +255,17 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
249
255
|
|
|
250
256
|
this.composeWith("pob:common:testing", {
|
|
251
257
|
monorepo: true,
|
|
252
|
-
enable: this.
|
|
253
|
-
runner: this.
|
|
258
|
+
enable: this.pobMonorepoConfig.testing,
|
|
259
|
+
runner: this.pobMonorepoConfig.testRunner,
|
|
254
260
|
disableYarnGitCache: this.options.disableYarnGitCache,
|
|
255
|
-
testing: this.
|
|
256
|
-
e2eTesting: this.
|
|
257
|
-
build: this.
|
|
258
|
-
typescript: this.
|
|
259
|
-
documentation: !!this.
|
|
260
|
-
codecov: this.
|
|
261
|
-
ci: this.
|
|
262
|
-
|
|
261
|
+
testing: this.pobMonorepoConfig.testing,
|
|
262
|
+
e2eTesting: this.pobMonorepoConfig.e2eTesting,
|
|
263
|
+
build: this.pobMonorepoConfig.typescript === true,
|
|
264
|
+
typescript: this.pobMonorepoConfig.typescript,
|
|
265
|
+
documentation: !!this.pobMonorepoConfig.documentation,
|
|
266
|
+
codecov: this.pobMonorepoConfig.testing && this.pobMonorepoConfig.codecov,
|
|
267
|
+
ci: this.pobMonorepoConfig.ci,
|
|
268
|
+
disablePushWorkflow: this.pobMonorepoConfig.disablePushWorkflow,
|
|
263
269
|
packageManager: this.options.packageManager,
|
|
264
270
|
isApp: this.options.isAppProject,
|
|
265
271
|
onlyLatestLTS: this.options.onlyLatestLTS,
|
|
@@ -267,10 +273,10 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
267
273
|
});
|
|
268
274
|
|
|
269
275
|
const rootIgnorePaths = [
|
|
270
|
-
this.
|
|
271
|
-
`${this.
|
|
272
|
-
this.
|
|
273
|
-
`${this.
|
|
276
|
+
this.pobMonorepoConfig.e2eTesting &&
|
|
277
|
+
`${this.pobMonorepoConfig.e2eTesting === "." || this.pobMonorepoConfig.e2eTesting === true ? "" : `/${this.pobMonorepoConfig.e2eTesting}`}/playwright-report/`,
|
|
278
|
+
this.pobMonorepoConfig.e2eTesting &&
|
|
279
|
+
`${this.pobMonorepoConfig.e2eTesting === "." || this.pobMonorepoConfig.e2eTesting === true ? "" : `/${this.pobMonorepoConfig.e2eTesting}`}/test-results/`,
|
|
274
280
|
].filter(Boolean);
|
|
275
281
|
|
|
276
282
|
if (hasTamagui(this.packages, this.packageConfigs)) {
|
|
@@ -283,12 +289,12 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
283
289
|
|
|
284
290
|
this.composeWith("pob:common:format-lint", {
|
|
285
291
|
monorepo: true,
|
|
286
|
-
documentation: this.
|
|
292
|
+
documentation: this.pobMonorepoConfig.documentation,
|
|
287
293
|
storybook: pkg?.devDependencies?.storybook,
|
|
288
|
-
typescript: this.
|
|
289
|
-
build: this.
|
|
290
|
-
testing: this.
|
|
291
|
-
testRunner: this.
|
|
294
|
+
typescript: this.pobMonorepoConfig.typescript,
|
|
295
|
+
build: this.pobMonorepoConfig.typescript === true,
|
|
296
|
+
testing: this.pobMonorepoConfig.testing,
|
|
297
|
+
testRunner: this.pobMonorepoConfig.testRunner,
|
|
292
298
|
packageManager: this.options.packageManager,
|
|
293
299
|
yarnNodeLinker: this.options.yarnNodeLinker,
|
|
294
300
|
appTypes: JSON.stringify(getAppTypes(this.packageConfigs)),
|
|
@@ -304,8 +310,8 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
304
310
|
});
|
|
305
311
|
|
|
306
312
|
this.composeWith("pob:lib:doc", {
|
|
307
|
-
enabled: this.
|
|
308
|
-
testing: this.
|
|
313
|
+
enabled: this.pobMonorepoConfig.documentation,
|
|
314
|
+
testing: this.pobMonorepoConfig.testing,
|
|
309
315
|
packageNames: JSON.stringify(packageNames),
|
|
310
316
|
packagePaths: JSON.stringify(packagePaths),
|
|
311
317
|
packageManager: this.options.packageManager,
|
|
@@ -316,9 +322,9 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
316
322
|
monorepo: true,
|
|
317
323
|
packageManager: this.options.packageManager,
|
|
318
324
|
yarnNodeLinker: this.options.yarnNodeLinker,
|
|
319
|
-
typescript: this.
|
|
320
|
-
testing: this.
|
|
321
|
-
testRunner: this.
|
|
325
|
+
typescript: this.pobMonorepoConfig.typescript,
|
|
326
|
+
testing: this.pobMonorepoConfig.testing,
|
|
327
|
+
testRunner: this.pobMonorepoConfig.testRunner,
|
|
322
328
|
packageNames: JSON.stringify(packageNames),
|
|
323
329
|
packageLocations: JSON.stringify(this.packageLocations),
|
|
324
330
|
});
|
|
@@ -326,9 +332,9 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
326
332
|
// Always add a gitignore, because npm publish uses it.
|
|
327
333
|
this.composeWith("pob:core:gitignore", {
|
|
328
334
|
root: true,
|
|
329
|
-
typescript: this.
|
|
330
|
-
documentation: this.
|
|
331
|
-
testing: this.
|
|
335
|
+
typescript: this.pobMonorepoConfig.typescript,
|
|
336
|
+
documentation: this.pobMonorepoConfig.documentation,
|
|
337
|
+
testing: this.pobMonorepoConfig.testing,
|
|
332
338
|
// TODO add workspaces paths like we do in format-lint
|
|
333
339
|
paths: [
|
|
334
340
|
// TODO remove gitignorePaths
|
|
@@ -336,7 +342,7 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
336
342
|
...rootIgnorePaths,
|
|
337
343
|
].join("\n"),
|
|
338
344
|
// todo: fix this using workspaces
|
|
339
|
-
// buildDirectory: this.
|
|
345
|
+
// buildDirectory: this.pobMonorepoConfig.typescript ? `/*/build` : "",
|
|
340
346
|
});
|
|
341
347
|
|
|
342
348
|
this.composeWith("pob:common:remove-old-dependencies");
|
|
@@ -345,20 +351,20 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
345
351
|
enable: true,
|
|
346
352
|
packageManager: this.options.packageManager,
|
|
347
353
|
enablePublish: !this.options.isAppProject,
|
|
348
|
-
withBabel: this.
|
|
354
|
+
withBabel: this.pobMonorepoConfig.typescript,
|
|
349
355
|
isMonorepo: true,
|
|
350
|
-
ci: this.
|
|
356
|
+
ci: this.pobMonorepoConfig.ci,
|
|
351
357
|
disableYarnGitCache: this.options.disableYarnGitCache,
|
|
352
358
|
updateOnly: this.options.updateOnly,
|
|
353
359
|
});
|
|
354
360
|
|
|
355
361
|
this.composeWith("pob:monorepo:typescript", {
|
|
356
|
-
enable: this.
|
|
357
|
-
checkOnly: this.
|
|
362
|
+
enable: this.pobMonorepoConfig.typescript,
|
|
363
|
+
checkOnly: this.pobMonorepoConfig.typescript === "check-only",
|
|
358
364
|
isAppProject: this.options.isAppProject,
|
|
359
365
|
packageNames: JSON.stringify(packageNames),
|
|
360
366
|
packagePaths: JSON.stringify(packagePaths),
|
|
361
|
-
testRunner: this.
|
|
367
|
+
testRunner: this.pobMonorepoConfig.testRunner,
|
|
362
368
|
onlyLatestLTS: this.options.onlyLatestLTS,
|
|
363
369
|
packageManager: this.options.packageManager,
|
|
364
370
|
});
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { quoteArg } from "./execUtils.js";
|
|
2
2
|
|
|
3
|
-
export const packageManagerRun = (packageManager, script) => {
|
|
3
|
+
export const packageManagerRun = (packageManager, script, packagePath) => {
|
|
4
|
+
const packagePathArg =
|
|
5
|
+
packagePath === "." || packagePath === true ? "" : packagePath;
|
|
4
6
|
switch (packageManager) {
|
|
5
7
|
case undefined:
|
|
6
8
|
case "yarn":
|
|
7
|
-
return `yarn run ${script}`;
|
|
9
|
+
return `yarn${packagePathArg ? ` ${packagePathArg}` : ""} run ${script}`;
|
|
8
10
|
case "npm":
|
|
9
|
-
return `npm run ${script}`;
|
|
11
|
+
return `npm run${packagePathArg ? ` --prefix ${packagePathArg}` : ""} ${script}`;
|
|
10
12
|
case "bun":
|
|
11
|
-
return `bun run ${script}`;
|
|
13
|
+
return `bun run${packagePathArg ? ` --cwd ${packagePathArg}` : ""} ${script}`;
|
|
12
14
|
case "pnpm":
|
|
13
|
-
return `pnpm run ${script}`;
|
|
15
|
+
return `pnpm${packagePathArg ? ` --dir ${packagePathArg}` : ""} run ${script}`;
|
|
14
16
|
default:
|
|
15
17
|
throw new Error(`Unsupported package manager: ${packageManager}`);
|
|
16
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pob",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "38.0.0",
|
|
4
4
|
"description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/vitest",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skeleton"
|
|
@@ -48,17 +48,17 @@
|
|
|
48
48
|
"validate-npm-package-name": "^8.0.0",
|
|
49
49
|
"yeoman-environment": "6.1.0",
|
|
50
50
|
"yeoman-generator": "8.2.2",
|
|
51
|
-
"@pob/eslint-config": "
|
|
52
|
-
"@pob/eslint-config-typescript-react": "
|
|
51
|
+
"@pob/eslint-config": "67.0.0",
|
|
52
|
+
"@pob/eslint-config-typescript-react": "67.0.0",
|
|
53
53
|
"@pob/sort-pkg": "13.1.2",
|
|
54
54
|
"@pob/sort-object": "11.1.1",
|
|
55
|
-
"pob-dependencies": "
|
|
55
|
+
"pob-dependencies": "27.0.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "24.13.3",
|
|
59
59
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
60
60
|
"@yeoman/types": "1.11.1",
|
|
61
|
-
"@pob/root": "
|
|
61
|
+
"@pob/root": "27.0.0"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=22.18.0"
|