pob 9.16.0 → 10.1.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/CHANGELOG.md +62 -0
- package/lib/generators/app/PobAppGenerator.js +5 -2
- package/lib/generators/app/ignorePaths.js +1 -1
- package/lib/generators/app/nextjs/AppNextjsGenerator.js +2 -1
- package/lib/generators/common/babel/CommonBabelGenerator.js +2 -7
- package/lib/generators/common/babel/templates/app.rollup.config.mjs.ejs +1 -0
- package/lib/generators/common/format-lint/CommonLintGenerator.js +50 -23
- package/lib/generators/common/testing/templates/babel.config.cjs.ejs +2 -0
- package/lib/generators/common/typescript/CommonTypescriptGenerator.js +36 -16
- package/lib/generators/common/typescript/templates/tsconfig.build.json.ejs +4 -5
- package/lib/generators/common/typescript/templates/tsconfig.json.ejs +18 -13
- package/lib/generators/lib/doc/templates/tsconfig.doc.json.ejs +0 -6
- package/lib/generators/monorepo/PobMonorepoGenerator.js +2 -0
- package/lib/pob.js +6 -0
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,68 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [10.1.0](https://github.com/christophehurpeau/pob/compare/pob@10.0.0...pob@10.1.0) (2022-02-12)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **deps:** update @pob/eslint-config to v49 (major) ([#1203](https://github.com/christophehurpeau/pob/issues/1203)) ([c063b55](https://github.com/christophehurpeau/pob/commit/c063b553eb15e3d3422f149b89ac1f9f12958e43))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [10.0.0](https://github.com/christophehurpeau/pob/compare/pob@9.16.2...pob@10.0.0) (2022-02-12)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **deps:** update dependency @yarnpkg/parsers to v2.5.0-rc.12 ([#1195](https://github.com/christophehurpeau/pob/issues/1195)) ([90c432e](https://github.com/christophehurpeau/pob/commit/90c432e9c714db95901bec29f3899d4ac8f24bd8))
|
|
23
|
+
* **deps:** update dependency @yarnpkg/parsers to v2.5.0-rc.13 ([#1200](https://github.com/christophehurpeau/pob/issues/1200)) ([8351d60](https://github.com/christophehurpeau/pob/commit/8351d60fee9b6629fbba5876eaf142af3a3bc544))
|
|
24
|
+
* **pob:** nextjs generator ([5f814dd](https://github.com/christophehurpeau/pob/commit/5f814dd9243c46d5b96fdc8b01adadaa044f2734))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* **deps:** update dependency eslint to v8.9.0 ([#1202](https://github.com/christophehurpeau/pob/issues/1202)) ([0c59870](https://github.com/christophehurpeau/pob/commit/0c59870f0cb4e9c7bf5a478446164de297c44ea8))
|
|
30
|
+
* **pob:** add watch in monorepo with rollup ([eba1e69](https://github.com/christophehurpeau/pob/commit/eba1e693149807b5a139eda1036b8d131e7a7228))
|
|
31
|
+
* **pob:** improve nextjs config ([17c4daf](https://github.com/christophehurpeau/pob/commit/17c4dafd3af2f982e0e0b260b7d5352f1e9f8c36))
|
|
32
|
+
* use react jsx-runtime ([5c8bd2b](https://github.com/christophehurpeau/pob/commit/5c8bd2ba8fc1153537a26e3439852fab4c7878de))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### BREAKING CHANGES
|
|
36
|
+
|
|
37
|
+
* requires react with jsx-supported runtime
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## [9.16.2](https://github.com/christophehurpeau/pob/compare/pob@9.16.1...pob@9.16.2) (2022-02-06)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
### Bug Fixes
|
|
47
|
+
|
|
48
|
+
* add missing cwd in apps to work in monorepo ([d8357bc](https://github.com/christophehurpeau/pob/commit/d8357bceb325cb14b90a86bf0a89168aad58565b))
|
|
49
|
+
* **deps:** update @pob/eslint-config to v48.1.1 ([#1193](https://github.com/christophehurpeau/pob/issues/1193)) ([bc8b133](https://github.com/christophehurpeau/pob/commit/bc8b1336982c6461e17645cef40d719cd1a8ac1c))
|
|
50
|
+
* **pob:** add missing @babel/core in monorepo with pob-babel ([4595747](https://github.com/christophehurpeau/pob/commit/45957478be9d01e56ffcffc8d2f9bec3a9899b9a))
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## [9.16.1](https://github.com/christophehurpeau/pob/compare/pob@9.16.0...pob@9.16.1) (2022-02-06)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
### Bug Fixes
|
|
60
|
+
|
|
61
|
+
* dont add rollup.config.mjs for non typescript monorepos ([848e578](https://github.com/christophehurpeau/pob/commit/848e57843d03eeb6fd9d5544eff085248110c711))
|
|
62
|
+
* **pob:** always add engines ([7095ad3](https://github.com/christophehurpeau/pob/commit/7095ad3388d503f4a752403530c2e7c24b385248))
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
6
68
|
# [9.16.0](https://github.com/christophehurpeau/pob/compare/pob@9.15.1...pob@9.16.0) (2022-02-05)
|
|
7
69
|
|
|
8
70
|
|
|
@@ -135,6 +135,7 @@ export default class PobAppGenerator extends Generator {
|
|
|
135
135
|
|
|
136
136
|
this.composeWith('pob:common:typescript', {
|
|
137
137
|
enable: babel,
|
|
138
|
+
// nextjs now supports src rootDir: this.appConfig.type === 'next.js' ? '.' : 'src',
|
|
138
139
|
builddefs: false,
|
|
139
140
|
dom: browser,
|
|
140
141
|
jsx,
|
|
@@ -144,11 +145,12 @@ export default class PobAppGenerator extends Generator {
|
|
|
144
145
|
if (
|
|
145
146
|
this.appConfig.type === 'alp' ||
|
|
146
147
|
this.appConfig.type === 'pobpack' ||
|
|
147
|
-
this.appConfig.type === 'node'
|
|
148
|
+
this.appConfig.type === 'node' ||
|
|
149
|
+
this.appConfig.type === 'next.js'
|
|
148
150
|
) {
|
|
149
151
|
return './src';
|
|
150
152
|
}
|
|
151
|
-
if (this.appConfig.type === 'next.js') return '.';
|
|
153
|
+
// if (this.appConfig.type === 'next.js') return '.';
|
|
152
154
|
return '';
|
|
153
155
|
})(),
|
|
154
156
|
});
|
|
@@ -172,6 +174,7 @@ export default class PobAppGenerator extends Generator {
|
|
|
172
174
|
babel,
|
|
173
175
|
node,
|
|
174
176
|
browser,
|
|
177
|
+
// nextjs now supports src rootAsSrc: this.appConfig.type === 'next.js',
|
|
175
178
|
enableSrcResolver: true,
|
|
176
179
|
packageManager: this.options.packageManager,
|
|
177
180
|
yarnNodeLinker: this.options.yarnNodeLinker,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const appIgnorePaths = {
|
|
2
2
|
alp: (config) => ['# alp paths', '/build', '/public', '/data'],
|
|
3
|
-
'next.js': (config) => ['# next.js paths', '/.next', '/out'],
|
|
3
|
+
'next.js': (config) => ['# next.js paths', '/.next', '/out', '/build'],
|
|
4
4
|
pobpack: (config) => ['/build', '/public'],
|
|
5
5
|
node: (config) => ['/dist'],
|
|
6
6
|
other: (config) => [],
|
|
@@ -17,8 +17,9 @@ export default class AppNextjsGenerator extends Generator {
|
|
|
17
17
|
const pkg = this.fs.readJSON(this.destinationPath('package.json'));
|
|
18
18
|
|
|
19
19
|
packageUtils.addScripts(pkg, {
|
|
20
|
+
start: 'next dev',
|
|
21
|
+
'start:prod': 'next start',
|
|
20
22
|
build: 'next build',
|
|
21
|
-
start: 'next',
|
|
22
23
|
});
|
|
23
24
|
|
|
24
25
|
this.fs.writeJSON(this.destinationPath('package.json'), pkg);
|
|
@@ -401,13 +401,8 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
401
401
|
} else {
|
|
402
402
|
packageUtils.removeDependencies(pkg, ['@types/node']);
|
|
403
403
|
packageUtils.removeDevDependencies(pkg, ['@types/node']);
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
if (Object.keys(pkg.engines).length === 0) delete pkg.engines;
|
|
407
|
-
} else {
|
|
408
|
-
// Supported LTS versions of node, that supports ESM modules.
|
|
409
|
-
pkg.engines.node = '^14.13.1 || >=16.0.0';
|
|
410
|
-
}
|
|
404
|
+
// Supported LTS versions of node, that supports ESM modules.
|
|
405
|
+
pkg.engines.node = '^14.13.1 || >=16.0.0';
|
|
411
406
|
}
|
|
412
407
|
|
|
413
408
|
/* browserslist */
|
|
@@ -47,6 +47,13 @@ export default class CommonLintGenerator extends Generator {
|
|
|
47
47
|
desc: 'Enable resolving from src directory',
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
+
this.option('rootAsSrc', {
|
|
51
|
+
type: Boolean,
|
|
52
|
+
required: false,
|
|
53
|
+
defaults: false,
|
|
54
|
+
desc: 'src directory is root',
|
|
55
|
+
});
|
|
56
|
+
|
|
50
57
|
this.option('appTypes', {
|
|
51
58
|
type: String,
|
|
52
59
|
required: false,
|
|
@@ -368,19 +375,16 @@ export default class CommonLintGenerator extends Generator {
|
|
|
368
375
|
this.fs.delete(`${eslintrcBadPath}.yml`);
|
|
369
376
|
this.fs.delete(`${eslintrcBadPath}.js`);
|
|
370
377
|
|
|
371
|
-
const rootEslintrcPath = this.
|
|
378
|
+
const rootEslintrcPath = this.options.rootAsSrc
|
|
379
|
+
? false
|
|
380
|
+
: this.destinationPath('.eslintrc.json');
|
|
372
381
|
|
|
373
|
-
const srcEslintrcPath = this.
|
|
374
|
-
|
|
375
|
-
|
|
382
|
+
const srcEslintrcPath = this.options.rootAsSrc
|
|
383
|
+
? this.destinationPath('.eslintrc.json')
|
|
384
|
+
: this.destinationPath(`${useBabel ? 'src/' : 'lib/'}.eslintrc.json`);
|
|
376
385
|
|
|
377
386
|
const useTypescript = useBabel;
|
|
378
|
-
|
|
379
|
-
try {
|
|
380
|
-
if (this.fs.exists(rootEslintrcPath)) {
|
|
381
|
-
ensureJsonFileFormatted(rootEslintrcPath);
|
|
382
|
-
}
|
|
383
|
-
|
|
387
|
+
const getRootIgnorePatterns = () => {
|
|
384
388
|
const ignorePatterns = new Set();
|
|
385
389
|
|
|
386
390
|
if (inLerna && !inLerna.root && (this.options.typescript || pkg.types)) {
|
|
@@ -394,7 +398,7 @@ export default class CommonLintGenerator extends Generator {
|
|
|
394
398
|
if ((!inLerna || !inLerna.root) && useBabel) {
|
|
395
399
|
ignorePatterns.add('/dist', '/test');
|
|
396
400
|
}
|
|
397
|
-
if (inLerna && inLerna.root) {
|
|
401
|
+
if (inLerna && inLerna.root && this.options.typescript) {
|
|
398
402
|
ignorePatterns.add('/rollup.config.mjs');
|
|
399
403
|
}
|
|
400
404
|
|
|
@@ -408,19 +412,34 @@ export default class CommonLintGenerator extends Generator {
|
|
|
408
412
|
});
|
|
409
413
|
}
|
|
410
414
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
{
|
|
414
|
-
extendsConfig: extendsConfigRoot,
|
|
415
|
-
ignorePatterns:
|
|
416
|
-
ignorePatterns.size === 0 ? undefined : [...ignorePatterns],
|
|
417
|
-
},
|
|
418
|
-
);
|
|
415
|
+
return ignorePatterns;
|
|
416
|
+
};
|
|
419
417
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
418
|
+
if (rootEslintrcPath) {
|
|
419
|
+
try {
|
|
420
|
+
if (this.fs.exists(rootEslintrcPath)) {
|
|
421
|
+
ensureJsonFileFormatted(rootEslintrcPath);
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
const rootIgnorePatterns = getRootIgnorePatterns();
|
|
425
|
+
|
|
426
|
+
const rootEslintrcConfig = updateEslintConfig(
|
|
427
|
+
this.fs.readJSON(rootEslintrcPath, {}),
|
|
428
|
+
{
|
|
429
|
+
extendsConfig: extendsConfigRoot,
|
|
430
|
+
ignorePatterns:
|
|
431
|
+
rootIgnorePatterns.size === 0
|
|
432
|
+
? undefined
|
|
433
|
+
: [...rootIgnorePatterns],
|
|
434
|
+
},
|
|
435
|
+
);
|
|
436
|
+
|
|
437
|
+
writeAndFormatJson(this.fs, rootEslintrcPath, rootEslintrcConfig);
|
|
438
|
+
} catch (err) {
|
|
439
|
+
console.warn(`Could not parse/edit ${rootEslintrcPath}: `, err);
|
|
440
|
+
}
|
|
423
441
|
}
|
|
442
|
+
// no else: dont delete root eslintrc, src is root
|
|
424
443
|
|
|
425
444
|
if ((inLerna && inLerna.root) || this.options.monorepo) {
|
|
426
445
|
if (this.fs.exists(srcEslintrcPath)) {
|
|
@@ -432,6 +451,13 @@ export default class CommonLintGenerator extends Generator {
|
|
|
432
451
|
ensureJsonFileFormatted(srcEslintrcPath);
|
|
433
452
|
}
|
|
434
453
|
|
|
454
|
+
const ignorePatterns = this.options.rootAsSrc
|
|
455
|
+
? getRootIgnorePatterns()
|
|
456
|
+
: new Set();
|
|
457
|
+
if (useTypescript || pkg.types) {
|
|
458
|
+
ignorePatterns.add('*.d.ts');
|
|
459
|
+
}
|
|
460
|
+
|
|
435
461
|
const srcEslintrcConfig = updateEslintConfig(
|
|
436
462
|
this.fs.readJSON(srcEslintrcPath, {}),
|
|
437
463
|
{
|
|
@@ -439,7 +465,8 @@ export default class CommonLintGenerator extends Generator {
|
|
|
439
465
|
jestOverride,
|
|
440
466
|
useTypescript: useBabel,
|
|
441
467
|
globalEslint,
|
|
442
|
-
ignorePatterns:
|
|
468
|
+
ignorePatterns:
|
|
469
|
+
ignorePatterns.size === 0 ? undefined : [...ignorePatterns],
|
|
443
470
|
settings: {
|
|
444
471
|
'import/resolver': this.options.enableSrcResolver
|
|
445
472
|
? {
|
|
@@ -14,6 +14,12 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
14
14
|
desc: 'enable typescript',
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
+
this.option('rootDir', {
|
|
18
|
+
type: String,
|
|
19
|
+
defaults: 'src',
|
|
20
|
+
desc: 'customize rootDir',
|
|
21
|
+
});
|
|
22
|
+
|
|
17
23
|
this.option('jsx', {
|
|
18
24
|
type: Boolean,
|
|
19
25
|
defaults: true,
|
|
@@ -71,7 +77,7 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
71
77
|
if (this.options.enable) {
|
|
72
78
|
const { jsx, dom } = this.options;
|
|
73
79
|
let composite;
|
|
74
|
-
let
|
|
80
|
+
let monorepoPackageBuildReferences;
|
|
75
81
|
let monorepoPackageSrcPaths;
|
|
76
82
|
|
|
77
83
|
if (inLerna && !inLerna.root) {
|
|
@@ -89,26 +95,39 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
89
95
|
['typescript'],
|
|
90
96
|
);
|
|
91
97
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
(
|
|
95
|
-
(
|
|
96
|
-
|
|
97
|
-
|
|
98
|
+
const packageLocations = new Map(
|
|
99
|
+
yoConfig.pob.monorepo.packageNames
|
|
100
|
+
.filter(
|
|
101
|
+
(packageName) =>
|
|
102
|
+
(pkg.dependencies && pkg.dependencies[packageName]) ||
|
|
103
|
+
(pkg.devDependencies && pkg.devDependencies[packageName]) ||
|
|
104
|
+
(pkg.peerDependencies && pkg.peerDependencies[packageName]),
|
|
105
|
+
)
|
|
106
|
+
.map((packageName) => [
|
|
107
|
+
packageName,
|
|
98
108
|
`../../${
|
|
99
109
|
packageName[0] === '@'
|
|
100
110
|
? packageName
|
|
101
111
|
: `packages/${packageName}`
|
|
102
|
-
}
|
|
103
|
-
),
|
|
112
|
+
}`,
|
|
113
|
+
]),
|
|
104
114
|
);
|
|
105
115
|
|
|
106
|
-
monorepoPackageSrcPaths =
|
|
107
|
-
(packageName) =>
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
monorepoPackageSrcPaths = [...packageLocations.entries()].map(
|
|
117
|
+
([packageName, packageLocation]) => [
|
|
118
|
+
packageName,
|
|
119
|
+
`${packageLocation}/${
|
|
120
|
+
existsSync(`${packageLocation}/src`) ? 'src' : 'lib'
|
|
121
|
+
}`,
|
|
122
|
+
],
|
|
111
123
|
);
|
|
124
|
+
monorepoPackageBuildReferences = yoConfig.pob.monorepo.packageNames
|
|
125
|
+
.filter((packageName) =>
|
|
126
|
+
existsSync(
|
|
127
|
+
`${packageLocations.get(packageName)}/tsconfig.build.json`,
|
|
128
|
+
),
|
|
129
|
+
)
|
|
130
|
+
.map((packageName) => packageLocations.get(packageName));
|
|
112
131
|
}
|
|
113
132
|
}
|
|
114
133
|
|
|
@@ -117,8 +136,9 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
117
136
|
this.templatePath('tsconfig.json.ejs'),
|
|
118
137
|
tsconfigPath,
|
|
119
138
|
{
|
|
120
|
-
monorepoPackageNames,
|
|
121
139
|
monorepoPackageSrcPaths,
|
|
140
|
+
monorepoPackageBuildReferences,
|
|
141
|
+
rootDir: this.options.rootDir,
|
|
122
142
|
jsx,
|
|
123
143
|
composite,
|
|
124
144
|
dom,
|
|
@@ -138,8 +158,8 @@ export default class CommonTypescriptGenerator extends Generator {
|
|
|
138
158
|
inMonorepo: inLerna && !inLerna.root,
|
|
139
159
|
jsx,
|
|
140
160
|
composite,
|
|
141
|
-
monorepoPackageNames,
|
|
142
161
|
monorepoPackageSrcPaths,
|
|
162
|
+
monorepoPackageBuildReferences,
|
|
143
163
|
},
|
|
144
164
|
);
|
|
145
165
|
} else {
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"extends": "./tsconfig.json",
|
|
3
3
|
|
|
4
4
|
"compilerOptions": {
|
|
5
|
-
"rootDir": "src",
|
|
6
5
|
"noEmit": false,
|
|
7
6
|
"declaration": true,
|
|
8
7
|
"declarationMap": true,
|
|
@@ -23,11 +22,11 @@
|
|
|
23
22
|
"src/**/*.test.tsx",
|
|
24
23
|
<% } -%>
|
|
25
24
|
"src/**/__tests__/**"
|
|
26
|
-
]<% if (
|
|
27
|
-
<% if (
|
|
25
|
+
]<% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { %>,<% } -%>
|
|
26
|
+
<% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { %>
|
|
28
27
|
"references": [
|
|
29
|
-
<%
|
|
30
|
-
|
|
28
|
+
<% monorepoPackageBuildReferences.forEach((monorepoPackageSrcPath, index) => { -%>
|
|
29
|
+
{ "path": "<%= monorepoPackageSrcPath %>/tsconfig.json" }<%= index === monorepoPackageBuildReferences.length -1 ? '' : ',' %>
|
|
31
30
|
<% }) -%>
|
|
32
31
|
]<% } -%>
|
|
33
32
|
}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"include": [
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"<%= rootDir %>/**/*.ts"<% if (jsx) { -%>,
|
|
4
|
+
"<%= rootDir %>/**/*.tsx"<% } %>
|
|
5
5
|
],
|
|
6
|
+
<% if(rootDir === '.') { -%>
|
|
7
|
+
"exclude": [
|
|
8
|
+
"node_modules"
|
|
9
|
+
],
|
|
10
|
+
<% } -%>
|
|
6
11
|
"compilerOptions": {
|
|
7
|
-
"rootDir": "
|
|
12
|
+
"rootDir": "<%= rootDir %>",
|
|
13
|
+
"incremental": true,
|
|
8
14
|
<% if(!composite) { -%>
|
|
9
15
|
/* No emit in default config file. See build config file for config to build declaration files */
|
|
10
16
|
"noEmit": true,
|
|
11
17
|
<% } else { -%>
|
|
12
18
|
"composite": true,
|
|
13
|
-
"incremental": true,
|
|
14
19
|
"noEmit": false,
|
|
15
20
|
"noEmitOnError": true,
|
|
16
21
|
"declaration": true,
|
|
@@ -26,7 +31,7 @@
|
|
|
26
31
|
"target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
|
|
27
32
|
"module": "esnext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
|
28
33
|
"lib": [<%- dom ? '"dom", ' : '' %>"esnext"], /* Polyfills are imported either by babel or with polyfill.io */
|
|
29
|
-
<%= jsx ? '' : '// ' %>"jsx": "
|
|
34
|
+
<%= jsx ? '' : '// ' %>"jsx": "react-jsx", /* 'react-jsx' is used with react/jsx-runtime (react >=17 || >= 16.14.0 | >= 15.7.0) */
|
|
30
35
|
"isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
|
|
31
36
|
|
|
32
37
|
/* Enable all strict type-checking options. */
|
|
@@ -46,18 +51,18 @@
|
|
|
46
51
|
<% if (resolveJsonModule) { -%>
|
|
47
52
|
"resolveJsonModule": <%= resolveJsonModule %>,
|
|
48
53
|
<% } -%>
|
|
49
|
-
"baseUrl": "<%= baseUrl %>"<% if (
|
|
50
|
-
<% if (
|
|
54
|
+
"baseUrl": "<%= baseUrl %>"<% if (monorepoPackageSrcPaths) { %>,<% } %> /* Base directory to resolve non-absolute module names. */
|
|
55
|
+
<% if (monorepoPackageSrcPaths && monorepoPackageSrcPaths.length !== 0) { -%>
|
|
51
56
|
"paths": {
|
|
52
|
-
<%
|
|
53
|
-
"<%= packageName %>": ["
|
|
54
|
-
"<%= packageName %>/*": ["
|
|
57
|
+
<% monorepoPackageSrcPaths.forEach(([packageName, packageLocation], index) => { %>
|
|
58
|
+
"<%= packageName %>": ["../<%= packageLocation %>"],
|
|
59
|
+
"<%= packageName %>/*": ["../<%= packageLocation %>/*"]<%= index === monorepoPackageSrcPaths.length -1 ? '' : ',' -%>
|
|
55
60
|
<% }) %>
|
|
56
61
|
}<% } %>
|
|
57
|
-
}<% if (
|
|
62
|
+
}<% if (monorepoPackageBuildReferences && monorepoPackageBuildReferences.length) { -%>,
|
|
58
63
|
"references": [
|
|
59
|
-
<%
|
|
60
|
-
{ "path": "
|
|
64
|
+
<% monorepoPackageBuildReferences.forEach((monorepoPackageSrcPath, index) => { -%>
|
|
65
|
+
{ "path": "<%= monorepoPackageSrcPath %>/tsconfig.json" }<%= index === monorepoPackageBuildReferences.length -1 ? '' : ',' %>
|
|
61
66
|
<% }) -%>
|
|
62
67
|
],
|
|
63
68
|
<% } -%>
|
|
@@ -284,8 +284,10 @@ export default class PobMonorepoGenerator extends Generator {
|
|
|
284
284
|
.map((workspaces) => `rm -Rf ${workspaces}/dist`)
|
|
285
285
|
.join(' && ')}) || true`,
|
|
286
286
|
build: 'yarn clean:build && rollup --config rollup.config.mjs',
|
|
287
|
+
watch: 'yarn clean:build && rollup --config rollup.config.mjs --watch',
|
|
287
288
|
});
|
|
288
289
|
packageUtils.addOrRemoveDevDependencies(pkg, rollupConfigs.length, [
|
|
290
|
+
'@babel/core',
|
|
289
291
|
'pob-babel',
|
|
290
292
|
]);
|
|
291
293
|
this.fs.writeJSON(this.destinationPath('package.json'), pkg);
|
package/lib/pob.js
CHANGED
|
@@ -6,6 +6,7 @@ import path from 'path';
|
|
|
6
6
|
import argv from 'minimist-argv';
|
|
7
7
|
import yeoman from 'yeoman-environment';
|
|
8
8
|
import PobAppGenerator from './generators/app/PobAppGenerator.js';
|
|
9
|
+
import AppNextjsGenerator from './generators/app/nextjs/AppNextjsGenerator.js';
|
|
9
10
|
import CommonBabelGenerator from './generators/common/babel/CommonBabelGenerator.js';
|
|
10
11
|
import CommonLintGenerator from './generators/common/format-lint/CommonLintGenerator.js';
|
|
11
12
|
import CommonHuskyGenerator from './generators/common/husky/CommonHuskyGenerator.js';
|
|
@@ -78,6 +79,11 @@ env.registerStub(
|
|
|
78
79
|
'pob:app',
|
|
79
80
|
`${__dirname}/generators/app/PobAppGenerator.js`,
|
|
80
81
|
);
|
|
82
|
+
env.registerStub(
|
|
83
|
+
AppNextjsGenerator,
|
|
84
|
+
'pob:app:nextjs',
|
|
85
|
+
`${__dirname}/generators/app/nextjs/AppNextjsGenerator.js`,
|
|
86
|
+
);
|
|
81
87
|
env.registerStub(
|
|
82
88
|
CommonBabelGenerator,
|
|
83
89
|
'pob:common:babel',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pob",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skeleton"
|
|
@@ -41,14 +41,14 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@lerna/package-graph": "^4.0.0",
|
|
43
43
|
"@lerna/project": "^4.0.0",
|
|
44
|
-
"@pob/eslint-config": "
|
|
45
|
-
"@pob/eslint-config-typescript": "
|
|
46
|
-
"@pob/eslint-config-typescript-react": "
|
|
44
|
+
"@pob/eslint-config": "49.0.0",
|
|
45
|
+
"@pob/eslint-config-typescript": "49.0.0",
|
|
46
|
+
"@pob/eslint-config-typescript-react": "49.0.0",
|
|
47
47
|
"@pob/sort-eslint-config": "^3.0.1",
|
|
48
48
|
"@pob/sort-object": "^4.0.1",
|
|
49
49
|
"@pob/sort-pkg": "^4.0.1",
|
|
50
|
-
"@yarnpkg/parsers": "2.5.0-rc.
|
|
51
|
-
"eslint": "8.
|
|
50
|
+
"@yarnpkg/parsers": "2.5.0-rc.13",
|
|
51
|
+
"eslint": "8.9.0",
|
|
52
52
|
"findup-sync": "^5.0.0",
|
|
53
53
|
"git-remote-url": "^1.0.1",
|
|
54
54
|
"github-username": "^6.0.0",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"mem-fs-editor": "9.4.0",
|
|
62
62
|
"minimist-argv": "^1.1.0",
|
|
63
63
|
"parse-author": "^2.0.0",
|
|
64
|
-
"pob-dependencies": "6.
|
|
64
|
+
"pob-dependencies": "6.14.0",
|
|
65
65
|
"prettier": "2.5.1",
|
|
66
66
|
"semver": "^7.3.4",
|
|
67
67
|
"yeoman-environment": "^3.5.1",
|
|
68
68
|
"yeoman-generator": "^5.4.0"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "a2c45c96006ec7d270c9d25386055411985932e6"
|
|
71
71
|
}
|