pob 9.9.0 → 9.12.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 +56 -0
- package/lib/generators/common/babel/CommonBabelGenerator.js +23 -4
- package/lib/generators/common/release/templates/release-please.yml.ejs +1 -1
- package/lib/generators/common/testing/CommonTestingGenerator.js +4 -3
- package/lib/generators/common/testing/templates/babel.config.cjs.ejs +10 -1
- package/lib/generators/core/package/CorePackageGenerator.js +3 -0
- package/lib/generators/core/yarn/CoreYarnGenerator.js +19 -9
- package/lib/generators/monorepo/lerna/MonorepoLernaGenerator.js +1 -1
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,62 @@
|
|
|
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
|
+
# [9.12.0](https://github.com/christophehurpeau/pob/compare/pob@9.11.0...pob@9.12.0) (2022-01-01)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **pob:** update release-please version ([8091222](https://github.com/christophehurpeau/pob/commit/80912226fedb9eb5e25936f2c9f4a719bf9605e9))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [9.11.0](https://github.com/christophehurpeau/pob/compare/pob@9.10.0...pob@9.11.0) (2022-01-01)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **pob:** legacy pkg.main cjs ([04dc5e2](https://github.com/christophehurpeau/pob/commit/04dc5e22e77b7383660b3bc62516d884670cf25a))
|
|
23
|
+
* force package type module when lerna and root is module ([c8e89a8](https://github.com/christophehurpeau/pob/commit/c8e89a8d04936ea7035d86a646437ba74e54146b))
|
|
24
|
+
* **deps:** update dependency @yarnpkg/parsers to v2.5.0-rc.7 ([#1148](https://github.com/christophehurpeau/pob/issues/1148)) ([8da56d4](https://github.com/christophehurpeau/pob/commit/8da56d4c1576908570c16da89caebad87a50c473))
|
|
25
|
+
* **pob:** monorepo react testing detection ([3f95cbf](https://github.com/christophehurpeau/pob/commit/3f95cbf667f624301aab82a88080c526507fe662))
|
|
26
|
+
* **pob:** test babel config with react ([726b954](https://github.com/christophehurpeau/pob/commit/726b95400eeef042bb22cafd1f4cdec23e0008df))
|
|
27
|
+
* package main when only esm is used ([b02684f](https://github.com/christophehurpeau/pob/commit/b02684f03a7bdf5875ac4919aa69df6b4993532f))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Features
|
|
31
|
+
|
|
32
|
+
* **deps:** update dependency eslint to v8.6.0 ([#1152](https://github.com/christophehurpeau/pob/issues/1152)) ([004bf4f](https://github.com/christophehurpeau/pob/commit/004bf4f78e200606813498ee4f211ed06fec659f))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# [9.10.0](https://github.com/christophehurpeau/pob/compare/pob@9.9.1...pob@9.10.0) (2021-12-26)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
### Features
|
|
42
|
+
|
|
43
|
+
* **deps:** update dependency mem-fs-editor to v9.4.0 ([#992](https://github.com/christophehurpeau/pob/issues/992)) ([692888b](https://github.com/christophehurpeau/pob/commit/692888bfb3546028f6cf86c58bd8cf2efecfbf71))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## [9.9.1](https://github.com/christophehurpeau/pob/compare/pob@9.9.0...pob@9.9.1) (2021-12-19)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* **pob:** add missing workspaces plugin when needed ([f3759c3](https://github.com/christophehurpeau/pob/commit/f3759c3f9bc34f30a7f72580df85b352fb67fbad))
|
|
55
|
+
* **pob:** exports for browser only ([0ede342](https://github.com/christophehurpeau/pob/commit/0ede342c71aefbcad6b037c3bd6ea1ac4eec2a61))
|
|
56
|
+
* **pob:** watch command ([e026f52](https://github.com/christophehurpeau/pob/commit/e026f5209d5bc0eb81ce766bbc8b7e5f62abe4b7))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
6
62
|
# [9.9.0](https://github.com/christophehurpeau/pob/compare/pob@9.8.0...pob@9.9.0) (2021-12-18)
|
|
7
63
|
|
|
8
64
|
|
|
@@ -421,6 +421,17 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
421
421
|
'not safari < 10',
|
|
422
422
|
'not ios_saf < 10',
|
|
423
423
|
];
|
|
424
|
+
} else if (this.options.isApp && pkg.browserslist) {
|
|
425
|
+
pkg.browserslist = {
|
|
426
|
+
...pkg.browserslist,
|
|
427
|
+
production: [
|
|
428
|
+
'defaults',
|
|
429
|
+
'> 0.2%',
|
|
430
|
+
'not ie < 12',
|
|
431
|
+
'not safari < 10',
|
|
432
|
+
'not ios_saf < 10',
|
|
433
|
+
],
|
|
434
|
+
};
|
|
424
435
|
} else {
|
|
425
436
|
delete pkg.browserslist;
|
|
426
437
|
}
|
|
@@ -457,7 +468,11 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
457
468
|
if (!pkg.main) {
|
|
458
469
|
pkg.exports = './lib/index.js';
|
|
459
470
|
}
|
|
460
|
-
pkg.
|
|
471
|
+
if (pkg.type === 'module' && this.fs.exists('./lib/index.cjs')) {
|
|
472
|
+
pkg.main = './lib/index.cjs';
|
|
473
|
+
} else {
|
|
474
|
+
pkg.main = './lib/index.js';
|
|
475
|
+
}
|
|
461
476
|
if (!this.options.isApp) {
|
|
462
477
|
if (this.fs.exists('./lib/index.ts')) {
|
|
463
478
|
pkg.types = './lib/index.ts';
|
|
@@ -568,9 +583,10 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
568
583
|
this.entries.forEach((entry) => {
|
|
569
584
|
const isBrowserOnly =
|
|
570
585
|
entry === 'browser' &&
|
|
571
|
-
this.babelEnvs.every((env) => env.target === 'browser')
|
|
586
|
+
(this.babelEnvs.every((env) => env.target === 'browser') ||
|
|
587
|
+
(this.entries.length === 2 && this.entries.includes('index')));
|
|
572
588
|
const entryDistName = isBrowserOnly ? 'index' : entry;
|
|
573
|
-
const exportName =
|
|
589
|
+
const exportName = entry === 'index' ? '.' : `./${entry}`;
|
|
574
590
|
|
|
575
591
|
const targets = {};
|
|
576
592
|
|
|
@@ -597,7 +613,10 @@ export default class CommonBabelGenerator extends Generator {
|
|
|
597
613
|
// eslint: https://github.com/benmosher/eslint-plugin-import/issues/2132
|
|
598
614
|
// jest: https://github.com/facebook/jest/issues/9771
|
|
599
615
|
if (!pkg.main && exportName === '.') {
|
|
600
|
-
pkg.main =
|
|
616
|
+
pkg.main =
|
|
617
|
+
exportTarget.default ||
|
|
618
|
+
exportTarget.require ||
|
|
619
|
+
exportTarget.import;
|
|
601
620
|
}
|
|
602
621
|
} else if (target === 'browser') {
|
|
603
622
|
if (formats.includes('es')) {
|
|
@@ -86,6 +86,7 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
86
86
|
const transpileWithBabel = this.options.monorepo
|
|
87
87
|
? yoConfigPobMonorepo.typescript
|
|
88
88
|
: pkg.pob && pkg.pob.babelEnvs && pkg.pob.babelEnvs.length > 0;
|
|
89
|
+
let hasReact = transpileWithBabel && packageUtils.hasReact(pkg);
|
|
89
90
|
|
|
90
91
|
if (!this.options.enable) {
|
|
91
92
|
packageUtils.removeDevDependencies(pkg, ['jest', '@types/jest']);
|
|
@@ -149,7 +150,9 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
149
150
|
workspacesWithoutStar.length === 1
|
|
150
151
|
? workspacesWithoutStar[0]
|
|
151
152
|
: `(${workspacesWithoutStar.join('|')})`;
|
|
152
|
-
|
|
153
|
+
hasReact = yoConfigPobMonorepo.packageNames.some((pkgName) =>
|
|
154
|
+
pkgName.startsWith('react-'),
|
|
155
|
+
);
|
|
153
156
|
|
|
154
157
|
if (!pkg.jest) pkg.jest = {};
|
|
155
158
|
Object.assign(pkg.jest, {
|
|
@@ -204,7 +207,6 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
204
207
|
].join(' ; '),
|
|
205
208
|
});
|
|
206
209
|
|
|
207
|
-
const hasReact = transpileWithBabel && packageUtils.hasReact(pkg);
|
|
208
210
|
const srcDirectory = transpileWithBabel ? 'src' : 'lib';
|
|
209
211
|
|
|
210
212
|
if (!pkg.jest) pkg.jest = {};
|
|
@@ -262,7 +264,6 @@ export default class CommonTestingGenerator extends Generator {
|
|
|
262
264
|
transpileWithBabel &&
|
|
263
265
|
((this.options.monorepo && globalTesting) || !globalTesting)
|
|
264
266
|
) {
|
|
265
|
-
const hasReact = transpileWithBabel && packageUtils.hasReact(pkg);
|
|
266
267
|
// cjs for jest compat
|
|
267
268
|
copyAndFormatTpl(
|
|
268
269
|
this.fs,
|
|
@@ -7,6 +7,15 @@ module.exports = function babelConfig(api) {
|
|
|
7
7
|
|
|
8
8
|
return {
|
|
9
9
|
only: [<%- only %>],
|
|
10
|
-
presets: [
|
|
10
|
+
presets: [
|
|
11
|
+
[require.resolve('pob-babel/preset.cjs')<% if (!jestExperimentalESM) { %>, { modules: 'commonjs' }<% } %>]
|
|
12
|
+
<% if (hasReact) { %>, [
|
|
13
|
+
'@babel/preset-react',
|
|
14
|
+
{
|
|
15
|
+
development: false,
|
|
16
|
+
useBuiltIns: true,
|
|
17
|
+
},
|
|
18
|
+
]<% } %>
|
|
19
|
+
],
|
|
11
20
|
};
|
|
12
21
|
};
|
|
@@ -139,6 +139,9 @@ export default class CorePackageGenerator extends Generator {
|
|
|
139
139
|
);
|
|
140
140
|
|
|
141
141
|
if (!pkg.type) pkg.type = props.type;
|
|
142
|
+
if (inLerna && !inLerna.root && inLerna.rootMonorepoPkg.type === 'module') {
|
|
143
|
+
pkg.type = 'module';
|
|
144
|
+
}
|
|
142
145
|
|
|
143
146
|
pkg.description = this.options.updateOnly
|
|
144
147
|
? pkg.description
|
|
@@ -66,22 +66,32 @@ export default class CoreYarnGenerator extends Generator {
|
|
|
66
66
|
const isPluginInstalled = (name) =>
|
|
67
67
|
installedPlugins.some((plugin) => plugin.name === name);
|
|
68
68
|
|
|
69
|
+
const installPlugin = (nameOrUrl) => {
|
|
70
|
+
this.spawnCommandSync('yarn', ['plugin', 'import', nameOrUrl]);
|
|
71
|
+
};
|
|
72
|
+
const removePlugin = (name) => {
|
|
73
|
+
this.spawnCommandSync('yarn', ['plugin', 'remove', name]);
|
|
74
|
+
};
|
|
75
|
+
|
|
69
76
|
const postinstallDevPluginName = '@yarnpkg/plugin-postinstall-dev';
|
|
77
|
+
const workspacesPluginName = '@yarnpkg/plugin-workspace-tools';
|
|
70
78
|
|
|
71
79
|
if (!inLerna && !pkg.private) {
|
|
72
80
|
if (!isPluginInstalled(postinstallDevPluginName)) {
|
|
73
|
-
|
|
74
|
-
'plugin',
|
|
75
|
-
'import',
|
|
81
|
+
installPlugin(
|
|
76
82
|
'https://raw.githubusercontent.com/sachinraja/yarn-plugin-postinstall-dev/main/bundles/%40yarnpkg/plugin-postinstall-dev.js',
|
|
77
|
-
|
|
83
|
+
);
|
|
78
84
|
}
|
|
79
85
|
} else if (isPluginInstalled(postinstallDevPluginName)) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
removePlugin(postinstallDevPluginName);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
if (pkg.workspaces) {
|
|
90
|
+
if (!isPluginInstalled(workspacesPluginName)) {
|
|
91
|
+
installPlugin(workspacesPluginName);
|
|
92
|
+
}
|
|
93
|
+
} else if (isPluginInstalled(workspacesPluginName)) {
|
|
94
|
+
removePlugin(workspacesPluginName);
|
|
85
95
|
}
|
|
86
96
|
|
|
87
97
|
// must be done after plugins installed
|
|
@@ -194,7 +194,7 @@ export default class MonorepoLernaGenerator extends Generator {
|
|
|
194
194
|
build:
|
|
195
195
|
'yarn workspaces foreach --parallel --topological-dev -Av run build',
|
|
196
196
|
watch:
|
|
197
|
-
'yarn workspaces foreach --parallel --exclude "*-example" -Av run watch',
|
|
197
|
+
'yarn workspaces foreach --parallel --jobs unlimited --interlaced --exclude "*-example" -Av run watch',
|
|
198
198
|
});
|
|
199
199
|
|
|
200
200
|
// packageUtils.addOrRemoveScripts(pkg, withTypescript, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pob",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.12.0",
|
|
4
4
|
"description": "Pile of bones, library generator with git/babel/typescript/typedoc/readme/jest",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"skeleton"
|
|
@@ -47,8 +47,8 @@
|
|
|
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.7",
|
|
51
|
+
"eslint": "8.6.0",
|
|
52
52
|
"findup-sync": "^5.0.0",
|
|
53
53
|
"git-remote-url": "^1.0.1",
|
|
54
54
|
"github-username": "^6.0.0",
|
|
@@ -58,14 +58,14 @@
|
|
|
58
58
|
"lodash.camelcase": "^4.3.0",
|
|
59
59
|
"lodash.kebabcase": "^4.1.1",
|
|
60
60
|
"mem-fs": "2.2.1",
|
|
61
|
-
"mem-fs-editor": "9.
|
|
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.6.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": "993baad01eaac3d0adb3eef52b8eb17fdf9babe1"
|
|
71
71
|
}
|