@ember/app-blueprint 6.10.0-beta.3 → 6.10.0-beta.4
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/.release-plan.json +3 -3
- package/CHANGELOG.md +11 -0
- package/README.md +0 -43
- package/eslint.config.mjs +0 -5
- package/files/app/templates/application.gts +2 -2
- package/files/index.html +5 -8
- package/files/package.json +1 -1
- package/files/testem.cjs +1 -2
- package/files/tests/index.html +3 -10
- package/files/tests/test-helper.ts +2 -3
- package/files/vite.config.mjs +3 -3
- package/index.js +3 -213
- package/package.json +5 -9
- package/conditional-files/minimal/app/app.ts +0 -10
- package/conditional-files/minimal/app/templates/application.gts +0 -7
- package/conditional-files/no-compat/_js_babel.config.mjs +0 -47
- package/conditional-files/no-compat/_ts_babel.config.mjs +0 -55
- package/conditional-files/no-compat/app/app.ts +0 -18
- package/conditional-files/no-compat/app/config/environment.ts +0 -38
- package/tests/fixtures/tests-js-no-compat-10/app/components/.gitkeep +0 -0
- package/tests/fixtures/tests-js-no-compat-10/app/components/sweet.gjs +0 -3
- package/tests/fixtures/tests-js-no-compat-10/app/router.js +0 -11
- package/tests/fixtures/tests-js-no-compat-10/app/routes/fancy.js +0 -6
- package/tests/fixtures/tests-js-no-compat-10/app/styles/app.css +0 -3
- package/tests/fixtures/tests-js-no-compat-10/app/templates/application.gjs +0 -7
- package/tests/fixtures/tests-js-no-compat-10/app/templates/fancy.gjs +0 -9
- package/tests/fixtures/tests-js-no-compat-10/tests/acceptance/index-test.js +0 -26
- package/tests/fixtures/tests-js-no-compat-10/tests/integration/components/sweet-test.gjs +0 -28
- package/tests/fixtures/tests-js-no-compat-10/tests/routes/fancy-test.js +0 -11
- package/tests/fixtures/tests-ts-no-compat-10/app/components/.gitkeep +0 -0
- package/tests/fixtures/tests-ts-no-compat-10/app/components/sweet.gts +0 -3
- package/tests/fixtures/tests-ts-no-compat-10/app/router.ts +0 -11
- package/tests/fixtures/tests-ts-no-compat-10/app/routes/fancy.ts +0 -8
- package/tests/fixtures/tests-ts-no-compat-10/app/styles/app.css +0 -3
- package/tests/fixtures/tests-ts-no-compat-10/app/templates/application.gts +0 -7
- package/tests/fixtures/tests-ts-no-compat-10/app/templates/fancy.gts +0 -9
- package/tests/fixtures/tests-ts-no-compat-10/tests/acceptance/index-test.ts +0 -26
- package/tests/fixtures/tests-ts-no-compat-10/tests/integration/components/sweet-test.gjs +0 -28
- package/tests/fixtures/tests-ts-no-compat-10/tests/routes/fancy-test.js +0 -11
- package/tests/minimal.test.mjs +0 -120
- package/tests/no-compat.test.mjs +0 -181
package/.release-plan.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"solution": {
|
|
3
3
|
"@ember/app-blueprint": {
|
|
4
4
|
"impact": "patch",
|
|
5
|
-
"oldVersion": "6.10.0-beta.
|
|
6
|
-
"newVersion": "6.10.0-beta.
|
|
5
|
+
"oldVersion": "6.10.0-beta.3",
|
|
6
|
+
"newVersion": "6.10.0-beta.4",
|
|
7
7
|
"tagName": "beta",
|
|
8
8
|
"constraints": [
|
|
9
9
|
{
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
"pkgJSONPath": "./package.json"
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
|
-
"description": "## Release (2026-01-
|
|
17
|
+
"description": "## Release (2026-01-13)\n\n* @ember/app-blueprint 6.10.0-beta.4 (patch)\n\n#### :bug: Bug Fix\n* `@ember/app-blueprint`\n * [#187](https://github.com/ember-cli/ember-app-blueprint/pull/187) [bugfix beta] Revert \"Add --minimal and --no-compat\" ([@NullVoxPopuli](https://github.com/NullVoxPopuli))\n\n#### Committers: 1\n- [@NullVoxPopuli](https://github.com/NullVoxPopuli)\n"
|
|
18
18
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Release (2026-01-13)
|
|
4
|
+
|
|
5
|
+
* @ember/app-blueprint 6.10.0-beta.4 (patch)
|
|
6
|
+
|
|
7
|
+
#### :bug: Bug Fix
|
|
8
|
+
* `@ember/app-blueprint`
|
|
9
|
+
* [#187](https://github.com/ember-cli/ember-app-blueprint/pull/187) [bugfix beta] Revert "Add --minimal and --no-compat" ([@NullVoxPopuli](https://github.com/NullVoxPopuli))
|
|
10
|
+
|
|
11
|
+
#### Committers: 1
|
|
12
|
+
- [@NullVoxPopuli](https://github.com/NullVoxPopuli)
|
|
13
|
+
|
|
3
14
|
## Release (2026-01-12)
|
|
4
15
|
|
|
5
16
|
* @ember/app-blueprint 6.10.0-beta.3 (patch)
|
package/README.md
CHANGED
|
@@ -9,46 +9,3 @@ If you have an existing app that you would like to upgrade to use Vite consider
|
|
|
9
9
|
```
|
|
10
10
|
pnpm dlx ember-cli@latest new my-app-name -b @ember/app-blueprint --pnpm
|
|
11
11
|
```
|
|
12
|
-
|
|
13
|
-
## Options
|
|
14
|
-
|
|
15
|
-
### `--no-compat`
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
pnpm dlx ember-cli@latest new my-app-name \
|
|
19
|
-
--blueprint @ember/app-blueprint@alpha \
|
|
20
|
-
--pnpm \
|
|
21
|
-
--no-compat
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Does the following:
|
|
25
|
-
- enables `type=module` in package.json (required for vite-ssr, and many ESM tools)
|
|
26
|
-
- makes the build and boot _MUCH FASTER_
|
|
27
|
-
(in large apps, this can have your app's boot be up to 1 minute faster)
|
|
28
|
-
- removes `@embroider/compat`
|
|
29
|
-
- removes support for:
|
|
30
|
-
- hbs (both for component files, and testing)
|
|
31
|
-
- content-for (in the HTML files)
|
|
32
|
-
- v1 addons
|
|
33
|
-
- node-land config/environment.js
|
|
34
|
-
- removes `ember-cli`
|
|
35
|
-
- ember-cli brings in a ton of old dependencies, so removing it makes installs much faster
|
|
36
|
-
- downside though is that you no longer have scaffolding (`ember g`) -- however, you could use `pnpm dlx ember-cli g ...` (or `npx ember-cli g`)
|
|
37
|
-
|
|
38
|
-
### `--minimal`
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
pnpm dlx ember-cli@latest new my-app-name \
|
|
42
|
-
--blueprint @ember/app-blueprint@alpha \
|
|
43
|
-
--pnpm \
|
|
44
|
-
--minimal
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Does the following
|
|
48
|
-
- everything listed under `--no-compat`
|
|
49
|
-
- Removes all linting, formatting, and testing support
|
|
50
|
-
- leaves you with a minimal app that you can use for demos, and PRing to other repositories that have multi-framework support (and probably use other testing tools for that multi-framework support)
|
|
51
|
-
- different defaults:
|
|
52
|
-
- warp-drive becomes _opt-in_ (pass `--warp-drive` if you want it -- normally requires `--no-warp-drive` to remove)
|
|
53
|
-
- ember-welcome-page becomes _opt-in_ (normally requires `--no-welcome` to remove)
|
|
54
|
-
|
package/eslint.config.mjs
CHANGED
|
@@ -26,15 +26,10 @@ export default [
|
|
|
26
26
|
eslintConfigPrettier,
|
|
27
27
|
{
|
|
28
28
|
ignores: [
|
|
29
|
-
'my-app/**',
|
|
30
29
|
'tests/fixtures/*',
|
|
31
|
-
'files/vite.config.*',
|
|
32
30
|
'files/ember-cli-build.js',
|
|
33
|
-
'files/testem.cjs',
|
|
34
31
|
'conditional-files/_js_*',
|
|
35
32
|
'conditional-files/_ts_*',
|
|
36
|
-
'conditional-files/no-compat/_js_*',
|
|
37
|
-
'conditional-files/no-compat/_ts_*',
|
|
38
33
|
],
|
|
39
34
|
},
|
|
40
35
|
];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { pageTitle } from 'ember-page-title'
|
|
2
|
-
import { WelcomePage } from 'ember-welcome-page';<% } %>
|
|
1
|
+
import { pageTitle } from 'ember-page-title';
|
|
2
|
+
<% if (welcome) {%>import { WelcomePage } from 'ember-welcome-page';<% } %>
|
|
3
3
|
|
|
4
4
|
<template>
|
|
5
5
|
{{pageTitle "<%= namespace %>"}}<% if (welcome) { %>
|
package/files/index.html
CHANGED
|
@@ -5,28 +5,25 @@
|
|
|
5
5
|
<title><%= namespace %></title>
|
|
6
6
|
<meta name="description" content="">
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
-
<% if (compat) { %>
|
|
9
8
|
|
|
10
9
|
{{content-for "head"}}
|
|
10
|
+
|
|
11
11
|
<link integrity="" rel="stylesheet" href="/@embroider/virtual/vendor.css">
|
|
12
12
|
<link integrity="" rel="stylesheet" href="/@embroider/virtual/app.css">
|
|
13
13
|
|
|
14
14
|
{{content-for "head-footer"}}
|
|
15
|
-
|
|
16
|
-
<link rel="stylesheet" href="/app/styles/app.css">
|
|
17
|
-
<% } %></head>
|
|
15
|
+
</head>
|
|
18
16
|
<body>
|
|
19
|
-
|
|
17
|
+
{{content-for "body"}}
|
|
20
18
|
|
|
21
19
|
<script src="/@embroider/virtual/vendor.js"></script>
|
|
22
|
-
|
|
20
|
+
<script type="module">
|
|
23
21
|
import Application from './app/app';
|
|
24
22
|
import environment from './app/config/environment';
|
|
25
23
|
|
|
26
24
|
Application.create(environment.APP);
|
|
27
25
|
</script>
|
|
28
|
-
<% if (compat) { %>{{content-for "body"}}
|
|
29
26
|
|
|
30
27
|
{{content-for "body-footer"}}
|
|
31
|
-
|
|
28
|
+
</body>
|
|
32
29
|
</html>
|
package/files/package.json
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"decorator-transforms": "^2.3.0",
|
|
67
67
|
"ember-cli": "~6.9.1",
|
|
68
68
|
"ember-cli-babel": "^8.2.0",
|
|
69
|
-
"ember-cli-deprecation-workflow": "^4.0
|
|
69
|
+
"ember-cli-deprecation-workflow": "^3.4.0",
|
|
70
70
|
"ember-load-initializers": "^3.0.1",
|
|
71
71
|
"ember-modifier": "^4.2.2",
|
|
72
72
|
"ember-page-title": "^9.0.3",
|
package/files/testem.cjs
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
if (typeof module !== 'undefined') {
|
|
4
4
|
module.exports = {
|
|
5
|
-
test_page: 'tests/index.html?hidepassed'
|
|
6
|
-
cwd: 'dist',<% } %>
|
|
5
|
+
test_page: 'tests/index.html?hidepassed',
|
|
7
6
|
disable_watching: true,
|
|
8
7
|
launch_in_ci: ['Chrome'],
|
|
9
8
|
launch_in_dev: ['Chrome'],
|
package/files/tests/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<title><%= namespace %> Tests</title>
|
|
6
6
|
<meta name="description" content="">
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
{{content-for "head"}}
|
|
10
10
|
{{content-for "test-head"}}
|
|
11
11
|
|
|
@@ -15,15 +15,12 @@
|
|
|
15
15
|
|
|
16
16
|
{{content-for "head-footer"}}
|
|
17
17
|
{{content-for "test-head-footer"}}
|
|
18
|
-
|
|
19
|
-
<link rel="stylesheet" href="/app/styles/app.css">
|
|
20
|
-
<% } %> </head>
|
|
18
|
+
</head>
|
|
21
19
|
<body>
|
|
22
|
-
<% if (compat) { %>
|
|
23
20
|
{{content-for "body"}}
|
|
24
21
|
{{content-for "test-body"}}
|
|
25
22
|
|
|
26
|
-
|
|
23
|
+
<div id="qunit"></div>
|
|
27
24
|
<div id="qunit-fixture">
|
|
28
25
|
<div id="ember-testing-container">
|
|
29
26
|
<div id="ember-testing"></div>
|
|
@@ -31,10 +28,8 @@
|
|
|
31
28
|
</div>
|
|
32
29
|
|
|
33
30
|
<script src="/testem.js" integrity="" data-embroider-ignore></script>
|
|
34
|
-
<% if (compat) { %>
|
|
35
31
|
<script src="/@embroider/virtual/vendor.js"></script>
|
|
36
32
|
<script src="/@embroider/virtual/test-support.js"></script>
|
|
37
|
-
<% } %>
|
|
38
33
|
<script type="module">import "ember-testing";</script>
|
|
39
34
|
|
|
40
35
|
<script type="module">
|
|
@@ -43,8 +38,6 @@
|
|
|
43
38
|
start();
|
|
44
39
|
</script>
|
|
45
40
|
|
|
46
|
-
<% if (compat) { %>
|
|
47
41
|
{{content-for "body-footer"}}
|
|
48
|
-
<% } %>
|
|
49
42
|
</body>
|
|
50
43
|
</html>
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
<% if (warpDrive) { %>import '@warp-drive/ember/install';<% } %>
|
|
2
2
|
import Application from '<%= modulePrefix %>/app';
|
|
3
|
-
import config
|
|
3
|
+
import config from '<%= modulePrefix %>/config/environment';
|
|
4
4
|
import * as QUnit from 'qunit';
|
|
5
5
|
import { setApplication } from '@ember/test-helpers';
|
|
6
6
|
import { setup } from 'qunit-dom';
|
|
7
7
|
import { start as qunitStart, setupEmberOnerrorValidation } from 'ember-qunit';
|
|
8
8
|
|
|
9
9
|
export function start() {
|
|
10
|
-
|
|
11
|
-
<% } %>setApplication(Application.create(config.APP));
|
|
10
|
+
setApplication(Application.create(config.APP));
|
|
12
11
|
|
|
13
12
|
setup(QUnit.assert);
|
|
14
13
|
setupEmberOnerrorValidation();
|
package/files/vite.config.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineConfig } from 'vite';
|
|
2
|
-
import { extensions
|
|
2
|
+
import { extensions, classicEmberSupport, ember } from '@embroider/vite';
|
|
3
3
|
import { babel } from '@rollup/plugin-babel';
|
|
4
4
|
|
|
5
5
|
export default defineConfig({
|
|
6
|
-
plugins: [
|
|
7
|
-
classicEmberSupport()
|
|
6
|
+
plugins: [
|
|
7
|
+
classicEmberSupport(),
|
|
8
8
|
ember(),
|
|
9
9
|
// extra plugins here
|
|
10
10
|
babel({
|
package/index.js
CHANGED
|
@@ -24,45 +24,6 @@ function stringifyAndNormalize(contents) {
|
|
|
24
24
|
* (see `conditional-files`)
|
|
25
25
|
*/
|
|
26
26
|
const replacers = {
|
|
27
|
-
'app/app.ts'(locals, contents) {
|
|
28
|
-
if (locals.minimal) {
|
|
29
|
-
let filePath = join(CONDITIONAL_FILES, 'minimal', 'app/app.ts');
|
|
30
|
-
let raw = readFileSync(filePath).toString();
|
|
31
|
-
return ejs.render(raw, locals);
|
|
32
|
-
} else if (locals.noCompat) {
|
|
33
|
-
let filePath = join(CONDITIONAL_FILES, 'no-compat', 'app/app.ts');
|
|
34
|
-
let raw = readFileSync(filePath).toString();
|
|
35
|
-
return ejs.render(raw, locals);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return ejs.render(contents, locals);
|
|
39
|
-
},
|
|
40
|
-
'app/config/environment.ts'(locals, contents) {
|
|
41
|
-
if (locals.noCompat) {
|
|
42
|
-
let filePath = join(
|
|
43
|
-
CONDITIONAL_FILES,
|
|
44
|
-
'no-compat',
|
|
45
|
-
'app/config/environment.ts',
|
|
46
|
-
);
|
|
47
|
-
let raw = readFileSync(filePath).toString();
|
|
48
|
-
return ejs.render(raw, locals);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return ejs.render(contents, locals);
|
|
52
|
-
},
|
|
53
|
-
'app/templates/application.gts'(locals, contents) {
|
|
54
|
-
if (locals.minimal) {
|
|
55
|
-
let filePath = join(
|
|
56
|
-
CONDITIONAL_FILES,
|
|
57
|
-
'minimal',
|
|
58
|
-
'app/templates/application.gts',
|
|
59
|
-
);
|
|
60
|
-
let raw = readFileSync(filePath).toString();
|
|
61
|
-
return ejs.render(raw, locals);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return ejs.render(contents, locals);
|
|
65
|
-
},
|
|
66
27
|
'package.json'(...args) {
|
|
67
28
|
return this.updatePackageJson(...args);
|
|
68
29
|
},
|
|
@@ -76,14 +37,7 @@ const replacers = {
|
|
|
76
37
|
},
|
|
77
38
|
'babel.config.mjs'(locals) {
|
|
78
39
|
let prefix = locals.typescript ? '_ts_' : '_js_';
|
|
79
|
-
|
|
80
|
-
let filePath = join(
|
|
81
|
-
...[
|
|
82
|
-
CONDITIONAL_FILES,
|
|
83
|
-
locals.noCompat && 'no-compat',
|
|
84
|
-
prefix + 'babel.config.mjs',
|
|
85
|
-
].filter(Boolean),
|
|
86
|
-
);
|
|
40
|
+
let filePath = join(CONDITIONAL_FILES, prefix + 'babel.config.mjs');
|
|
87
41
|
|
|
88
42
|
let raw = readFileSync(filePath).toString();
|
|
89
43
|
|
|
@@ -126,8 +80,6 @@ module.exports = {
|
|
|
126
80
|
options.packageManager === 'pnpm' && '"--pnpm"',
|
|
127
81
|
options.ciProvider && `"--ci-provider=${options.ciProvider}"`,
|
|
128
82
|
options.typescript && `"--typescript"`,
|
|
129
|
-
options.minimal && `"--minimal"`,
|
|
130
|
-
options.noCompat && `"--no-compat"`,
|
|
131
83
|
!options.emberData && `"--no-ember-data"`,
|
|
132
84
|
!options.warpDrive && `"--no-warp-drive"`,
|
|
133
85
|
]
|
|
@@ -149,37 +101,6 @@ module.exports = {
|
|
|
149
101
|
execBinPrefix = 'pnpm';
|
|
150
102
|
}
|
|
151
103
|
|
|
152
|
-
let welcome = options.welcome;
|
|
153
|
-
let warpDrive = options.warpDrive ?? options.emberData;
|
|
154
|
-
let minimal = false;
|
|
155
|
-
let compat = true;
|
|
156
|
-
/**
|
|
157
|
-
* --minimal overrides compat/no-compat
|
|
158
|
-
*/
|
|
159
|
-
if (options.minimal) {
|
|
160
|
-
minimal = true;
|
|
161
|
-
compat = false;
|
|
162
|
-
|
|
163
|
-
// Invert defaults
|
|
164
|
-
{
|
|
165
|
-
welcome = options.welcome = process.argv.includes('--welcome');
|
|
166
|
-
warpDrive =
|
|
167
|
-
options.emberData =
|
|
168
|
-
options.warpDrive =
|
|
169
|
-
process.argv.includes('--ember-data') ||
|
|
170
|
-
process.argv.includes('--warp-drive');
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
if (!minimal) {
|
|
175
|
-
if (options.noCompat || options.compat === false) {
|
|
176
|
-
compat = false;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
let noCompat = !compat;
|
|
181
|
-
let notMinimal = !minimal;
|
|
182
|
-
|
|
183
104
|
return {
|
|
184
105
|
appDirectory: directoryForPackageName(name),
|
|
185
106
|
name,
|
|
@@ -192,18 +113,14 @@ module.exports = {
|
|
|
192
113
|
options.packageManager !== 'yarn' && options.packageManager !== 'pnpm',
|
|
193
114
|
invokeScriptPrefix,
|
|
194
115
|
execBinPrefix,
|
|
195
|
-
welcome,
|
|
116
|
+
welcome: options.welcome,
|
|
196
117
|
blueprint: 'app',
|
|
197
118
|
blueprintOptions,
|
|
198
119
|
lang: options.lang,
|
|
199
|
-
warpDrive: warpDrive,
|
|
120
|
+
warpDrive: options.warpDrive ?? options.emberData,
|
|
200
121
|
ciProvider: options.ciProvider,
|
|
201
122
|
typescript: options.typescript,
|
|
202
123
|
packageManager: options.packageManager ?? 'npm',
|
|
203
|
-
compat,
|
|
204
|
-
noCompat,
|
|
205
|
-
minimal,
|
|
206
|
-
notMinimal,
|
|
207
124
|
};
|
|
208
125
|
},
|
|
209
126
|
|
|
@@ -214,10 +131,6 @@ module.exports = {
|
|
|
214
131
|
|
|
215
132
|
let files = this._super();
|
|
216
133
|
|
|
217
|
-
// Locals is where we calculate defaults and such.
|
|
218
|
-
// Let's not duplicate that work here
|
|
219
|
-
options = this.locals(options);
|
|
220
|
-
|
|
221
134
|
if (options.ciProvider !== 'github') {
|
|
222
135
|
files = files.filter((file) => file.indexOf('.github') < 0);
|
|
223
136
|
}
|
|
@@ -237,43 +150,6 @@ module.exports = {
|
|
|
237
150
|
files = files.filter((file) => !file.includes('services/.gitkeep'));
|
|
238
151
|
}
|
|
239
152
|
|
|
240
|
-
if (options.noCompat) {
|
|
241
|
-
files = files.filter((file) => {
|
|
242
|
-
return (
|
|
243
|
-
!file.includes('ember-cli') &&
|
|
244
|
-
!file.includes('ember-cli-build.js') &&
|
|
245
|
-
!file.includes('controllers/') &&
|
|
246
|
-
!file.includes('config/environment.js') &&
|
|
247
|
-
!file.includes('config/optional-features') &&
|
|
248
|
-
!file.includes('config/targets') &&
|
|
249
|
-
!file.includes('app/helpers/')
|
|
250
|
-
);
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
if (options.minimal) {
|
|
255
|
-
files = files.filter((file) => {
|
|
256
|
-
return (
|
|
257
|
-
!file.includes('.github/') &&
|
|
258
|
-
!file.includes('.prettierignore') &&
|
|
259
|
-
!file.includes('README') &&
|
|
260
|
-
!file.includes('deprecation-workflow') &&
|
|
261
|
-
!file.includes('components/') &&
|
|
262
|
-
!file.includes('eslint.config') &&
|
|
263
|
-
!file.includes('prettierrc') &&
|
|
264
|
-
!file.includes('public/') &&
|
|
265
|
-
!file.includes('routes/') &&
|
|
266
|
-
!file.includes('services/') &&
|
|
267
|
-
!file.includes('stylelint') &&
|
|
268
|
-
!file.includes('styles/') &&
|
|
269
|
-
!file.includes('template-lintrc') &&
|
|
270
|
-
!file.includes('testem') &&
|
|
271
|
-
!file.includes('tests/') &&
|
|
272
|
-
!file.includes('watchman')
|
|
273
|
-
);
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
|
|
277
153
|
this._files = files;
|
|
278
154
|
|
|
279
155
|
return this._files;
|
|
@@ -306,92 +182,6 @@ module.exports = {
|
|
|
306
182
|
updatePackageJson(options, content) {
|
|
307
183
|
let contents = JSON.parse(content);
|
|
308
184
|
|
|
309
|
-
if (options.minimal) {
|
|
310
|
-
// Remove linting
|
|
311
|
-
{
|
|
312
|
-
delete contents.scripts['format'];
|
|
313
|
-
delete contents.scripts['lint'];
|
|
314
|
-
delete contents.scripts['lint:format'];
|
|
315
|
-
delete contents.scripts['lint:fix'];
|
|
316
|
-
delete contents.scripts['lint:js'];
|
|
317
|
-
delete contents.scripts['lint:js:fix'];
|
|
318
|
-
delete contents.scripts['lint:css'];
|
|
319
|
-
delete contents.scripts['lint:css:fix'];
|
|
320
|
-
delete contents.scripts['lint:hbs'];
|
|
321
|
-
delete contents.scripts['lint:hbs:fix'];
|
|
322
|
-
|
|
323
|
-
delete contents.devDependencies['@babel/eslint-parser'];
|
|
324
|
-
delete contents.devDependencies['@eslint/js'];
|
|
325
|
-
delete contents.devDependencies['concurrently'];
|
|
326
|
-
delete contents.devDependencies['ember-template-lint'];
|
|
327
|
-
delete contents.devDependencies['eslint'];
|
|
328
|
-
delete contents.devDependencies['eslint-config-prettier'];
|
|
329
|
-
delete contents.devDependencies['eslint-plugin-ember'];
|
|
330
|
-
delete contents.devDependencies['eslint-plugin-n'];
|
|
331
|
-
delete contents.devDependencies['eslint-plugin-qunit'];
|
|
332
|
-
delete contents.devDependencies['eslint-plugin-warp-drive'];
|
|
333
|
-
delete contents.devDependencies['globals'];
|
|
334
|
-
delete contents.devDependencies['prettier'];
|
|
335
|
-
delete contents.devDependencies['prettier-plugin-ember-template-tag'];
|
|
336
|
-
delete contents.devDependencies['stylelint'];
|
|
337
|
-
delete contents.devDependencies['stylelint-config-standard'];
|
|
338
|
-
delete contents.devDependencies['typescript-eslint'];
|
|
339
|
-
}
|
|
340
|
-
// Remove testing
|
|
341
|
-
{
|
|
342
|
-
delete contents.scripts['test'];
|
|
343
|
-
delete contents.devDependencies['@ember/test-helpers'];
|
|
344
|
-
delete contents.devDependencies['@ember/test-waiters'];
|
|
345
|
-
delete contents.devDependencies['ember-qunit'];
|
|
346
|
-
delete contents.devDependencies['qunit'];
|
|
347
|
-
delete contents.devDependencies['qunit-dom'];
|
|
348
|
-
delete contents.devDependencies['testem'];
|
|
349
|
-
}
|
|
350
|
-
// Extraneous / non-core deps.
|
|
351
|
-
// if folks go minimal, they know what they are doing
|
|
352
|
-
{
|
|
353
|
-
delete contents.devDependencies['ember-welcome-page'];
|
|
354
|
-
delete contents.devDependencies['tracked-built-ins'];
|
|
355
|
-
delete contents.devDependencies['ember-page-title'];
|
|
356
|
-
delete contents.devDependencies['ember-modifier'];
|
|
357
|
-
delete contents.devDependencies['ember-cli-deprecation-workflow'];
|
|
358
|
-
delete contents.devDependencies['ember-resolver'];
|
|
359
|
-
}
|
|
360
|
-
// common-in-the-vite-ecosystem alias
|
|
361
|
-
{
|
|
362
|
-
contents.scripts.dev = contents.scripts.start;
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
contents.devDependencies['ember-strict-application-resolver'] = '^0.1.0';
|
|
366
|
-
}
|
|
367
|
-
if (options.noCompat) {
|
|
368
|
-
contents.type = 'module';
|
|
369
|
-
contents.engines.node = '>= 24';
|
|
370
|
-
delete contents.directories;
|
|
371
|
-
delete contents.devDependencies['@ember/string'];
|
|
372
|
-
delete contents.devDependencies['@ember/optional-features'];
|
|
373
|
-
delete contents.devDependencies['@embroider/compat'];
|
|
374
|
-
delete contents.devDependencies['@embroider/config-meta-loader'];
|
|
375
|
-
// Users should use npx ember-cli instead
|
|
376
|
-
delete contents.devDependencies['ember-cli'];
|
|
377
|
-
delete contents.devDependencies['ember-cli-babel'];
|
|
378
|
-
delete contents.devDependencies['ember-load-initializers'];
|
|
379
|
-
|
|
380
|
-
// A nice feature of modern apps is using sub-path imports
|
|
381
|
-
// Why specify the whole app name, when you can use `#`?
|
|
382
|
-
contents.imports = {
|
|
383
|
-
'#app/*': './app/*',
|
|
384
|
-
'#config': './app/config/environment',
|
|
385
|
-
'#components/*': './app/components/*',
|
|
386
|
-
};
|
|
387
|
-
|
|
388
|
-
if (contents.scripts.test) {
|
|
389
|
-
contents.scripts.test =
|
|
390
|
-
'vite build --mode development && testem ci --port 0';
|
|
391
|
-
contents.devDependencies['testem'] = '^3.17.0';
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
|
|
395
185
|
return stringifyAndNormalize(sortPackageJson(contents));
|
|
396
186
|
},
|
|
397
187
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ember/app-blueprint",
|
|
3
|
-
"version": "6.10.0-beta.
|
|
3
|
+
"version": "6.10.0-beta.4",
|
|
4
4
|
"description": "Blueprint for next generation of Ember apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ember-blueprint"
|
|
@@ -25,13 +25,12 @@
|
|
|
25
25
|
"ejs": "^3.1.10",
|
|
26
26
|
"ember-cli-string-utils": "^1.1.0",
|
|
27
27
|
"lodash": "^4.17.21",
|
|
28
|
-
"sort-package-json": "^3.5.1",
|
|
29
28
|
"walk-sync": "^3.0.0"
|
|
30
29
|
},
|
|
31
30
|
"devDependencies": {
|
|
32
31
|
"@eslint/js": "^9.3.0",
|
|
33
32
|
"concurrently": "^9.1.2",
|
|
34
|
-
"ember-cli": "^6.
|
|
33
|
+
"ember-cli": "^6.3.1",
|
|
35
34
|
"eslint": "9.x",
|
|
36
35
|
"eslint-config-prettier": "^9.1.0",
|
|
37
36
|
"execa": "^9.1.0",
|
|
@@ -43,7 +42,7 @@
|
|
|
43
42
|
"release-plan": "^0.17.2",
|
|
44
43
|
"strip-ansi": "^7.1.0",
|
|
45
44
|
"tmp-promise": "^3.0.3",
|
|
46
|
-
"vitest": "^4.0.
|
|
45
|
+
"vitest": "^4.0.0-beta.17"
|
|
47
46
|
},
|
|
48
47
|
"scripts": {
|
|
49
48
|
"lint": "concurrently 'pnpm:lint:*(!fix)'",
|
|
@@ -51,10 +50,7 @@
|
|
|
51
50
|
"lint:eslint": "eslint .",
|
|
52
51
|
"lint:prettier": "prettier . --check",
|
|
53
52
|
"format": "prettier . --write",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"update:alpha": "pnpm dlx update-blueprint-deps --ember-source alpha --ember-cli alpha --ember-data alpha ./files/package.json",
|
|
57
|
-
"update:beta": "pnpm dlx update-blueprint-deps --ember-source beta --ember-cli beta --ember-data beta ./files/package.json",
|
|
58
|
-
"test": "vitest"
|
|
53
|
+
"test": "vitest",
|
|
54
|
+
"new:app": "pnpm dlx ember-cli@latest new my-app --blueprint ."
|
|
59
55
|
}
|
|
60
56
|
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<% if (warpDrive) { %>import '@warp-drive/ember/install';
|
|
2
|
-
<% } %>import Application from 'ember-strict-application-resolver';
|
|
3
|
-
|
|
4
|
-
export default class App extends Application {
|
|
5
|
-
modules = {
|
|
6
|
-
...import.meta.glob('./router.*', { eager: true }),
|
|
7
|
-
...import.meta.glob('./templates/**/*', { eager: true }),
|
|
8
|
-
...import.meta.glob('./services/**/*', { eager: true }),
|
|
9
|
-
}
|
|
10
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { dirname } from 'node:path';
|
|
2
|
-
import { fileURLToPath } from 'node:url';
|
|
3
|
-
<% if (warpDrive) { %>import { setConfig } from '@warp-drive/core/build-config';
|
|
4
|
-
<% } %>import { buildMacros } from '@embroider/macros/babel';
|
|
5
|
-
|
|
6
|
-
<% if (warpDrive) { %>const macros = buildMacros({
|
|
7
|
-
configure: (config) => {
|
|
8
|
-
setConfig(config, {
|
|
9
|
-
// for universal apps this MUST be at least 5.6
|
|
10
|
-
compatWith: '5.6',
|
|
11
|
-
});
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
<% } else { %>const macros = buildMacros();
|
|
15
|
-
<% } %>
|
|
16
|
-
export default {
|
|
17
|
-
plugins: [
|
|
18
|
-
[
|
|
19
|
-
'babel-plugin-ember-template-compilation',
|
|
20
|
-
{
|
|
21
|
-
compilerPath: 'ember-source/dist/ember-template-compiler.js',
|
|
22
|
-
transforms: [...macros.templateMacros],
|
|
23
|
-
},
|
|
24
|
-
],
|
|
25
|
-
[
|
|
26
|
-
'module:decorator-transforms',
|
|
27
|
-
{
|
|
28
|
-
runtime: {
|
|
29
|
-
import: import.meta.resolve('decorator-transforms/runtime-esm'),
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
],
|
|
33
|
-
[
|
|
34
|
-
'@babel/plugin-transform-runtime',
|
|
35
|
-
{
|
|
36
|
-
absoluteRuntime: dirname(fileURLToPath(import.meta.url)),
|
|
37
|
-
useESModules: true,
|
|
38
|
-
regenerator: false,
|
|
39
|
-
},
|
|
40
|
-
],
|
|
41
|
-
...macros.babelMacros,
|
|
42
|
-
],
|
|
43
|
-
|
|
44
|
-
generatorOpts: {
|
|
45
|
-
compact: false,
|
|
46
|
-
},
|
|
47
|
-
};
|