frontend-hamroun 1.2.3 → 1.2.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/dist/frontend-hamroun.es.js +16 -32
- package/dist/frontend-hamroun.es.js.map +1 -1
- package/dist/frontend-hamroun.umd.js.map +1 -1
- package/package.json +3 -2
- package/templates/basic/package.json +1 -1
- package/templates/basic/vite.config.ts +60 -2
- package/templates/basic-app/package.json +5 -15
- package/templates/basic-app/vite.config.ts +60 -2
- package/templates/full-stack/package.json +2 -19
- package/templates/full-stack/vite.config.ts +79 -0
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "frontend-hamroun",
|
3
|
-
"version": "1.2.
|
3
|
+
"version": "1.2.4",
|
4
4
|
"description": "A lightweight frontend and backend framework for building modern web applications",
|
5
5
|
"type": "module",
|
6
6
|
"main": "dist/frontend-hamroun.umd.js",
|
@@ -78,6 +78,7 @@
|
|
78
78
|
"jsonwebtoken": "^9.0.2",
|
79
79
|
"mongoose": "^8.0.3",
|
80
80
|
"morgan": "^1.10.0",
|
81
|
-
"ts-node": "^10.9.2"
|
81
|
+
"ts-node": "^10.9.2",
|
82
|
+
"vite-plugin-node-polyfills": "^0.23.0"
|
82
83
|
}
|
83
84
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { defineConfig } from 'vite';
|
2
|
+
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
2
3
|
|
3
4
|
export default defineConfig({
|
4
5
|
esbuild: {
|
@@ -9,7 +10,7 @@ export default defineConfig({
|
|
9
10
|
outDir: 'dist',
|
10
11
|
emptyOutDir: true,
|
11
12
|
rollupOptions: {
|
12
|
-
// Mark testing dependencies
|
13
|
+
// Mark testing dependencies and Node.js dependencies as external
|
13
14
|
external: [
|
14
15
|
'mock-aws-s3',
|
15
16
|
'aws-sdk',
|
@@ -17,12 +18,69 @@ export default defineConfig({
|
|
17
18
|
'jest',
|
18
19
|
'jest-mock',
|
19
20
|
'@testing-library/react',
|
20
|
-
'@testing-library/jest-dom'
|
21
|
+
'@testing-library/jest-dom',
|
22
|
+
'@mswjs/interceptors',
|
23
|
+
'node-pre-gyp',
|
24
|
+
'bcrypt',
|
25
|
+
'jsonwebtoken',
|
26
|
+
'mongoose',
|
27
|
+
'express',
|
28
|
+
'compression',
|
29
|
+
'helmet',
|
30
|
+
'morgan',
|
31
|
+
/node:.*/
|
21
32
|
]
|
22
33
|
}
|
23
34
|
},
|
24
35
|
server: {
|
25
36
|
port: 3000,
|
26
37
|
open: true
|
38
|
+
},
|
39
|
+
optimizeDeps: {
|
40
|
+
esbuildOptions: {
|
41
|
+
// Node.js global to browser globalThis
|
42
|
+
define: {
|
43
|
+
global: 'globalThis'
|
44
|
+
},
|
45
|
+
// Enable esbuild polyfill plugins
|
46
|
+
plugins: [
|
47
|
+
{
|
48
|
+
name: 'node-modules-polyfill',
|
49
|
+
setup(build) {
|
50
|
+
// Exclude node:* imports and html files
|
51
|
+
build.onResolve({ filter: /^node:/ }, () => {
|
52
|
+
return { external: true };
|
53
|
+
});
|
54
|
+
build.onResolve({ filter: /\.html$/ }, () => {
|
55
|
+
return { external: true };
|
56
|
+
});
|
57
|
+
}
|
58
|
+
}
|
59
|
+
]
|
60
|
+
},
|
61
|
+
// Exclude problematic dependencies from optimization
|
62
|
+
exclude: [
|
63
|
+
'mock-aws-s3',
|
64
|
+
'aws-sdk',
|
65
|
+
'nock',
|
66
|
+
'@mswjs/interceptors',
|
67
|
+
'node-pre-gyp',
|
68
|
+
'bcrypt'
|
69
|
+
]
|
70
|
+
},
|
71
|
+
plugins: [
|
72
|
+
// Add node polyfills for browser environment
|
73
|
+
nodePolyfills({
|
74
|
+
// Whether to polyfill `node:` protocol imports
|
75
|
+
protocolImports: true,
|
76
|
+
}),
|
77
|
+
],
|
78
|
+
resolve: {
|
79
|
+
// Add node compatibility
|
80
|
+
alias: {
|
81
|
+
// Handle missing imports specifically
|
82
|
+
'@mswjs/interceptors/presets/node': { find: /^@mswjs\/interceptors\/presets\/node/, replacement: '{}' },
|
83
|
+
'./util/nw-pre-gyp/index.html': { find: './util/nw-pre-gyp/index.html', replacement: '{}' }
|
84
|
+
}
|
27
85
|
}
|
28
86
|
});
|
@@ -1,30 +1,20 @@
|
|
1
1
|
{
|
2
|
-
"name": "
|
2
|
+
"name": "frontend-hamroun-app",
|
3
3
|
"private": true,
|
4
4
|
"version": "0.1.0",
|
5
5
|
"type": "module",
|
6
6
|
"scripts": {
|
7
7
|
"dev": "vite",
|
8
8
|
"build": "tsc && vite build",
|
9
|
-
"preview": "vite preview"
|
10
|
-
"start": "node dist/server.js",
|
11
|
-
"dev:full": "concurrently \"npm run dev\" \"npm run dev:server\"",
|
12
|
-
"dev:server": "tsx watch src/server.ts"
|
9
|
+
"preview": "vite preview"
|
13
10
|
},
|
14
11
|
"dependencies": {
|
15
|
-
"
|
12
|
+
"frontend-hamroun": "latest"
|
16
13
|
},
|
17
14
|
"devDependencies": {
|
18
|
-
"@tailwindcss/forms": "^0.5.7",
|
19
|
-
"@tailwindcss/typography": "^0.5.10",
|
20
15
|
"@types/node": "^20.10.0",
|
21
|
-
"autoprefixer": "^10.4.16",
|
22
|
-
"concurrently": "^8.2.2",
|
23
|
-
"cssnano": "^6.0.1",
|
24
|
-
"postcss": "^8.4.31",
|
25
|
-
"tailwindcss": "^3.3.5",
|
26
|
-
"tsx": "^4.6.0",
|
27
16
|
"typescript": "^5.3.2",
|
28
|
-
"vite": "^5.0.0"
|
17
|
+
"vite": "^5.0.0",
|
18
|
+
"vite-plugin-node-polyfills": "^0.21.0"
|
29
19
|
}
|
30
20
|
}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { defineConfig } from 'vite';
|
2
|
+
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
2
3
|
|
3
4
|
export default defineConfig({
|
4
5
|
esbuild: {
|
@@ -9,7 +10,7 @@ export default defineConfig({
|
|
9
10
|
outDir: 'dist',
|
10
11
|
emptyOutDir: true,
|
11
12
|
rollupOptions: {
|
12
|
-
// Mark testing dependencies
|
13
|
+
// Mark testing dependencies and Node.js dependencies as external
|
13
14
|
external: [
|
14
15
|
'mock-aws-s3',
|
15
16
|
'aws-sdk',
|
@@ -17,12 +18,69 @@ export default defineConfig({
|
|
17
18
|
'jest',
|
18
19
|
'jest-mock',
|
19
20
|
'@testing-library/react',
|
20
|
-
'@testing-library/jest-dom'
|
21
|
+
'@testing-library/jest-dom',
|
22
|
+
'@mswjs/interceptors',
|
23
|
+
'node-pre-gyp',
|
24
|
+
'bcrypt',
|
25
|
+
'jsonwebtoken',
|
26
|
+
'mongoose',
|
27
|
+
'express',
|
28
|
+
'compression',
|
29
|
+
'helmet',
|
30
|
+
'morgan',
|
31
|
+
/node:.*/
|
21
32
|
]
|
22
33
|
}
|
23
34
|
},
|
24
35
|
server: {
|
25
36
|
port: 3000,
|
26
37
|
open: true
|
38
|
+
},
|
39
|
+
optimizeDeps: {
|
40
|
+
esbuildOptions: {
|
41
|
+
// Node.js global to browser globalThis
|
42
|
+
define: {
|
43
|
+
global: 'globalThis'
|
44
|
+
},
|
45
|
+
// Enable esbuild polyfill plugins
|
46
|
+
plugins: [
|
47
|
+
{
|
48
|
+
name: 'node-modules-polyfill',
|
49
|
+
setup(build) {
|
50
|
+
// Exclude node:* imports and html files
|
51
|
+
build.onResolve({ filter: /^node:/ }, () => {
|
52
|
+
return { external: true };
|
53
|
+
});
|
54
|
+
build.onResolve({ filter: /\.html$/ }, () => {
|
55
|
+
return { external: true };
|
56
|
+
});
|
57
|
+
}
|
58
|
+
}
|
59
|
+
]
|
60
|
+
},
|
61
|
+
// Exclude problematic dependencies from optimization
|
62
|
+
exclude: [
|
63
|
+
'mock-aws-s3',
|
64
|
+
'aws-sdk',
|
65
|
+
'nock',
|
66
|
+
'@mswjs/interceptors',
|
67
|
+
'node-pre-gyp',
|
68
|
+
'bcrypt'
|
69
|
+
]
|
70
|
+
},
|
71
|
+
plugins: [
|
72
|
+
// Add node polyfills for browser environment
|
73
|
+
nodePolyfills({
|
74
|
+
// Whether to polyfill `node:` protocol imports
|
75
|
+
protocolImports: true,
|
76
|
+
}),
|
77
|
+
],
|
78
|
+
resolve: {
|
79
|
+
// Add node compatibility
|
80
|
+
alias: {
|
81
|
+
// Handle missing imports specifically
|
82
|
+
'@mswjs/interceptors/presets/node': { find: /^@mswjs\/interceptors\/presets\/node/, replacement: '{}' },
|
83
|
+
'./util/nw-pre-gyp/index.html': { find: './util/nw-pre-gyp/index.html', replacement: '{}' }
|
84
|
+
}
|
27
85
|
}
|
28
86
|
});
|
@@ -19,32 +19,15 @@
|
|
19
19
|
"express": "^4.18.2",
|
20
20
|
"compression": "^1.7.4",
|
21
21
|
"helmet": "^7.0.0",
|
22
|
-
"morgan": "^1.10.0"
|
23
|
-
"mongoose": "^7.0.0",
|
24
|
-
"bcrypt": "^5.1.0",
|
25
|
-
"jsonwebtoken": "^9.0.0",
|
26
|
-
"cookie-parser": "^1.4.6",
|
27
|
-
"dotenv": "^16.0.3"
|
22
|
+
"morgan": "^1.10.0"
|
28
23
|
},
|
29
24
|
"devDependencies": {
|
30
|
-
"@tailwindcss/forms": "^0.5.7",
|
31
|
-
"@tailwindcss/typography": "^0.5.10",
|
32
25
|
"@types/express": "^4.17.21",
|
33
26
|
"@types/node": "^20.10.0",
|
34
|
-
"autoprefixer": "^10.4.16",
|
35
27
|
"concurrently": "^8.2.2",
|
36
|
-
"postcss": "^8.4.31",
|
37
|
-
"tailwindcss": "^3.3.5",
|
38
28
|
"ts-node": "^10.9.1",
|
39
29
|
"typescript": "^5.3.2",
|
40
30
|
"vite": "^5.0.0",
|
41
|
-
"
|
42
|
-
"@types/compression": "^1.7.2",
|
43
|
-
"@types/cookie-parser": "^1.4.3",
|
44
|
-
"@types/jest": "^29.5.0",
|
45
|
-
"@types/jsonwebtoken": "^9.0.1",
|
46
|
-
"jest": "^29.5.0",
|
47
|
-
"nodemon": "^2.0.21",
|
48
|
-
"ts-jest": "^29.0.5"
|
31
|
+
"vite-plugin-node-polyfills": "^0.21.0"
|
49
32
|
}
|
50
33
|
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
import { defineConfig } from 'vite';
|
2
|
+
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
3
|
+
|
4
|
+
export default defineConfig({
|
5
|
+
esbuild: {
|
6
|
+
jsxFactory: 'jsx',
|
7
|
+
jsxFragment: 'Fragment'
|
8
|
+
},
|
9
|
+
build: {
|
10
|
+
outDir: 'dist',
|
11
|
+
emptyOutDir: true,
|
12
|
+
rollupOptions: {
|
13
|
+
// Mark server-side dependencies as external
|
14
|
+
external: [
|
15
|
+
'express',
|
16
|
+
'compression',
|
17
|
+
'helmet',
|
18
|
+
'morgan',
|
19
|
+
'bcrypt',
|
20
|
+
'jsonwebtoken',
|
21
|
+
'mongoose',
|
22
|
+
'aws-sdk',
|
23
|
+
'nock',
|
24
|
+
'mock-aws-s3',
|
25
|
+
'@mswjs/interceptors',
|
26
|
+
/node:.*/
|
27
|
+
]
|
28
|
+
}
|
29
|
+
},
|
30
|
+
server: {
|
31
|
+
port: 3000,
|
32
|
+
open: true,
|
33
|
+
proxy: {
|
34
|
+
'/api': {
|
35
|
+
target: 'http://localhost:3001',
|
36
|
+
changeOrigin: true
|
37
|
+
}
|
38
|
+
}
|
39
|
+
},
|
40
|
+
optimizeDeps: {
|
41
|
+
esbuildOptions: {
|
42
|
+
define: {
|
43
|
+
global: 'globalThis'
|
44
|
+
},
|
45
|
+
plugins: [
|
46
|
+
{
|
47
|
+
name: 'node-modules-polyfill',
|
48
|
+
setup(build) {
|
49
|
+
build.onResolve({ filter: /^node:/ }, () => {
|
50
|
+
return { external: true };
|
51
|
+
});
|
52
|
+
build.onResolve({ filter: /\.html$/ }, () => {
|
53
|
+
return { external: true };
|
54
|
+
});
|
55
|
+
}
|
56
|
+
}
|
57
|
+
]
|
58
|
+
},
|
59
|
+
exclude: [
|
60
|
+
'mock-aws-s3',
|
61
|
+
'aws-sdk',
|
62
|
+
'nock',
|
63
|
+
'@mswjs/interceptors',
|
64
|
+
'node-pre-gyp',
|
65
|
+
'bcrypt'
|
66
|
+
]
|
67
|
+
},
|
68
|
+
plugins: [
|
69
|
+
nodePolyfills({
|
70
|
+
protocolImports: true,
|
71
|
+
}),
|
72
|
+
],
|
73
|
+
resolve: {
|
74
|
+
alias: {
|
75
|
+
'@mswjs/interceptors/presets/node': { find: /^@mswjs\/interceptors\/presets\/node/, replacement: '{}' },
|
76
|
+
'./util/nw-pre-gyp/index.html': { find: './util/nw-pre-gyp/index.html', replacement: '{}' }
|
77
|
+
}
|
78
|
+
}
|
79
|
+
});
|