Skip to content

Commit 88ecea7

Browse files
committed
add vite 🎉
1 parent 25aece9 commit 88ecea7

14 files changed

Lines changed: 1603 additions & 365 deletions

‎.gitignore‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/tmp/
2+
13
# compiled output
24
/dist/
35
/declarations/

‎app/app.ts‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
import Application from '@ember/application';
22
import Resolver from 'ember-resolver';
33
import loadInitializers from 'ember-load-initializers';
4-
import config from 'fresh-vault/config/environment';
4+
import config from "./config/environment";
55
import { importSync, isDevelopingApp, macroCondition } from '@embroider/macros';
66

7+
import compatModules from "@embroider/virtual/compat-modules";
8+
79
if (macroCondition(isDevelopingApp())) {
810
importSync('./deprecation-workflow');
911
}
1012

1113
export default class App extends Application {
1214
modulePrefix = config.modulePrefix;
1315
podModulePrefix = config.podModulePrefix;
14-
Resolver = Resolver;
16+
Resolver = Resolver.withModules(compatModules);
1517
}
1618

17-
loadInitializers(App, config.modulePrefix);
19+
loadInitializers(App, config.modulePrefix, compatModules);

‎app/config/environment.js‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import loadConfigFromMeta from '@embroider/config-meta-loader';
2+
3+
export default loadConfigFromMeta('fresh-vault');

‎app/index.html‎

Lines changed: 0 additions & 24 deletions
This file was deleted.

‎babel.config.cjs‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const {
2+
babelCompatSupport,
3+
templateCompatSupport,
4+
} = require('@embroider/compat/babel');
5+
6+
module.exports = {
7+
plugins: [
8+
[
9+
'@babel/plugin-transform-typescript',
10+
{
11+
allExtensions: true,
12+
onlyRemoveTypeImports: true,
13+
allowDeclareFields: true,
14+
},
15+
],
16+
[
17+
'babel-plugin-ember-template-compilation',
18+
{
19+
compilerPath: 'ember-source/dist/ember-template-compiler.js',
20+
enableLegacyModules: [
21+
'ember-cli-htmlbars',
22+
'ember-cli-htmlbars-inline-precompile',
23+
'htmlbars-inline-precompile',
24+
],
25+
transforms: [...templateCompatSupport()],
26+
},
27+
],
28+
[
29+
'module:decorator-transforms',
30+
{
31+
runtime: {
32+
import: require.resolve('decorator-transforms/runtime-esm'),
33+
},
34+
},
35+
],
36+
[
37+
'@babel/plugin-transform-runtime',
38+
{
39+
absoluteRuntime: __dirname,
40+
useESModules: true,
41+
regenerator: false,
42+
},
43+
],
44+
...babelCompatSupport(),
45+
],
46+
47+
generatorOpts: {
48+
compact: false,
49+
},
50+
};

‎ember-cli-build.js‎

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1-
'use strict';
2-
1+
'use strict';;
32
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
43

5-
module.exports = function (defaults) {
4+
const {
5+
compatBuild
6+
} = require("@embroider/compat");
7+
8+
module.exports = async function(defaults) {
9+
const {
10+
buildOnce
11+
} = await import("@embroider/vite");
12+
613
const app = new EmberApp(defaults, {
714
'ember-cli-babel': { enableTypeScriptTransform: true },
815
babel: {
@@ -13,5 +20,5 @@ module.exports = function (defaults) {
1320

1421
});
1522

16-
return app.toTree();
23+
return compatBuild(app, buildOnce);
1724
};

‎index.html‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>FreshVault</title>
6+
<meta name="description" content="">
7+
<meta name="viewport" content="width=device-width, initial-scale=1">
8+
9+
{{content-for "head"}}
10+
11+
<link integrity="" rel="stylesheet" href="/@embroider/virtual/vendor.css">
12+
<link integrity="" rel="stylesheet" href="/@embroider/virtual/app.css">
13+
14+
{{content-for "head-footer"}}
15+
</head>
16+
<body>
17+
{{content-for "body"}}
18+
19+
<script src="/@embroider/virtual/vendor.js"></script>
20+
<script type="module">
21+
import Application from './app/app';
22+
import environment from './app/config/environment';
23+
24+
Application.create(environment.APP);
25+
</script>
26+
27+
{{content-for "body-footer"}}
28+
</body>
29+
</html>

‎package.json‎

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"test": "tests"
1212
},
1313
"scripts": {
14-
"build": "ember build --environment=production",
14+
"build": "vite build",
1515
"format": "prettier . --cache --write",
1616
"lint": "concurrently \"pnpm:lint:*(!fix)\" --names \"lint:\" --prefixColors auto",
1717
"lint:css": "stylelint \"**/*.css\"",
@@ -23,14 +23,15 @@
2323
"lint:js": "eslint . --cache",
2424
"lint:js:fix": "eslint . --fix",
2525
"lint:types": "tsc --noEmit",
26-
"start": "ember serve",
26+
"start": "vite",
2727
"test": "concurrently \"pnpm:lint\" \"pnpm:test:*\" --names \"lint,test:\" --prefixColors auto",
28-
"test:ember": "ember test"
28+
"test:ember": "vite build --mode test && ember test --path dist"
2929
},
3030
"devDependencies": {
3131
"@babel/core": "^7.28.0",
3232
"@babel/eslint-parser": "^7.28.0",
3333
"@babel/plugin-proposal-decorators": "^7.28.0",
34+
"@babel/plugin-transform-runtime": "^7.26.9",
3435
"@ember-data/adapter": "~5.6.0",
3536
"@ember-data/graph": "~5.6.0",
3637
"@ember-data/json-api": "~5.6.0",
@@ -41,32 +42,33 @@
4142
"@ember-data/serializer": "~5.6.0",
4243
"@ember-data/store": "~5.6.0",
4344
"@ember/optional-features": "^2.2.0",
45+
"@ember/string": "^4.0.0",
4446
"@ember/test-helpers": "^5.2.2",
47+
"@embroider/compat": "^4.0.3",
48+
"@embroider/config-meta-loader": "^1.0.0",
49+
"@embroider/core": "^4.0.3",
4550
"@embroider/macros": "^1.18.1",
51+
"@embroider/vite": "^1.1.1",
4652
"@eslint/js": "^9.32.0",
4753
"@glimmer/component": "^2.0.0",
4854
"@glimmer/tracking": "^1.1.2",
4955
"@glint/environment-ember-loose": "^1.5.2",
5056
"@glint/environment-ember-template-imports": "^1.5.2",
5157
"@glint/template": "^1.5.2",
58+
"@rollup/plugin-babel": "^6.0.4",
5259
"@tsconfig/ember": "^3.0.11",
5360
"@types/qunit": "^2.19.12",
5461
"@types/rsvp": "^4.0.9",
5562
"@warp-drive/core-types": "~5.6.0",
5663
"@warp-drive/ember": "~5.6.0",
57-
"broccoli-asset-rev": "^3.0.0",
64+
"babel-plugin-ember-template-compilation": "^2.3.0",
5865
"concurrently": "^9.2.0",
66+
"decorator-transforms": "^2.3.0",
5967
"ember-auto-import": "^2.10.0",
6068
"ember-cli": "~6.6.0",
61-
"ember-cli-app-version": "^7.0.0",
6269
"ember-cli-babel": "^8.2.0",
63-
"ember-cli-clean-css": "^3.0.0",
64-
"ember-cli-dependency-checker": "^3.3.3",
6570
"ember-cli-deprecation-workflow": "^3.4.0",
6671
"ember-cli-htmlbars": "^6.3.0",
67-
"ember-cli-inject-live-reload": "^2.1.0",
68-
"ember-cli-sri": "^2.1.1",
69-
"ember-cli-terser": "^4.0.2",
7072
"ember-concurrency": "^4.0.6",
7173
"ember-data": "~5.6.0",
7274
"ember-load-initializers": "^3.0.1",
@@ -76,7 +78,6 @@
7678
"ember-resolver": "^13.1.1",
7779
"ember-simple-auth": "^8.0.0",
7880
"ember-source": "~6.6.0",
79-
"ember-template-imports": "^4.3.0",
8081
"ember-template-lint": "^6.1.0",
8182
"ember-welcome-page": "^7.0.2",
8283
"eslint": "^9.32.0",
@@ -85,7 +86,6 @@
8586
"eslint-plugin-n": "^17.21.3",
8687
"eslint-plugin-qunit": "^8.2.5",
8788
"globals": "^15.15.0",
88-
"loader.js": "^4.7.0",
8989
"prettier": "^3.6.2",
9090
"prettier-plugin-ember-template-tag": "^2.1.0",
9191
"qunit": "^2.24.1",
@@ -95,13 +95,21 @@
9595
"tracked-built-ins": "^3.4.0",
9696
"typescript": "^5.8.3",
9797
"typescript-eslint": "^8.38.0",
98-
"webpack": "^5.101.0"
98+
"vite": "^6.0.0"
9999
},
100100
"engines": {
101101
"node": ">= 20.11"
102102
},
103103
"ember": {
104104
"edition": "octane"
105105
},
106-
"packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a"
107-
}
106+
"packageManager": "pnpm@9.15.3+sha512.1f79bc245a66eb0b07c5d4d83131240774642caaa86ef7d0434ab47c0d16f66b04e21e0c086eb61e62c77efc4d7f7ec071afad3796af64892fae66509173893a",
107+
"ember-addon": {
108+
"type": "app",
109+
"version": 2
110+
},
111+
"exports": {
112+
"./tests/*": "./tests/*",
113+
"./*": "./app/*"
114+
}
115+
}

0 commit comments

Comments
 (0)