From 69b3e9d547a8fa6a60839b2cd3a4fb2da4912f55 Mon Sep 17 00:00:00 2001 From: liangxiaoming Date: Sun, 27 Oct 2024 10:42:18 +0800 Subject: [PATCH] feat: add bugger demo --- demos/react18_with_base_config/README.md | 9 + demos/react18_with_base_config/package.json | 12 ++ .../react-app/emp.config.ts | 30 ++++ .../react-app/package.json | 27 +++ .../react-app/src/App.tsx | 31 ++++ .../react-app/src/bootstrap.tsx | 5 + .../react-app/src/index.html | 14 ++ .../react-app/src/index.tsx | 1 + .../react-app/tsconfig.json | 10 ++ .../react-host-with-base-config/emp.config.ts | 34 ++++ .../react-host-with-base-config/package.json | 26 +++ .../react-host-with-base-config/src/App.tsx | 15 ++ .../src/CountComp.tsx | 11 ++ .../src/bootstrap.tsx | 5 + .../react-host-with-base-config/src/index.tsx | 1 + .../react-host-with-base-config/tsconfig.json | 10 ++ pnpm-lock.yaml | 165 +++++------------- 17 files changed, 281 insertions(+), 125 deletions(-) create mode 100644 demos/react18_with_base_config/README.md create mode 100644 demos/react18_with_base_config/package.json create mode 100644 demos/react18_with_base_config/react-app/emp.config.ts create mode 100644 demos/react18_with_base_config/react-app/package.json create mode 100644 demos/react18_with_base_config/react-app/src/App.tsx create mode 100644 demos/react18_with_base_config/react-app/src/bootstrap.tsx create mode 100644 demos/react18_with_base_config/react-app/src/index.html create mode 100644 demos/react18_with_base_config/react-app/src/index.tsx create mode 100644 demos/react18_with_base_config/react-app/tsconfig.json create mode 100644 demos/react18_with_base_config/react-host-with-base-config/emp.config.ts create mode 100644 demos/react18_with_base_config/react-host-with-base-config/package.json create mode 100644 demos/react18_with_base_config/react-host-with-base-config/src/App.tsx create mode 100644 demos/react18_with_base_config/react-host-with-base-config/src/CountComp.tsx create mode 100644 demos/react18_with_base_config/react-host-with-base-config/src/bootstrap.tsx create mode 100644 demos/react18_with_base_config/react-host-with-base-config/src/index.tsx create mode 100644 demos/react18_with_base_config/react-host-with-base-config/tsconfig.json diff --git a/demos/react18_with_base_config/README.md b/demos/react18_with_base_config/README.md new file mode 100644 index 00000000..2c28bd88 --- /dev/null +++ b/demos/react18_with_base_config/README.md @@ -0,0 +1,9 @@ +# EMP3 React18 DEMO with base config + +## 运行 +``` +pnpm i +pnpm dev +``` + +[文档说明](https://empjs.dev/guide/empShare/react.html) \ No newline at end of file diff --git a/demos/react18_with_base_config/package.json b/demos/react18_with_base_config/package.json new file mode 100644 index 00000000..590be4f6 --- /dev/null +++ b/demos/react18_with_base_config/package.json @@ -0,0 +1,12 @@ +{ + "name": "emp3-react18-demo", + "ignored": true, + "version": "0.0.1", + "scripts": { + "dev": "pnpm --filter runtime-18-* --parallel dev", + "build": "pnpm --filter runtime-18-* --parallel build", + "serve": "pnpm --filter runtime-18-* --parallel serve", + "stat": "pnpm --filter runtime-18-* --parallel stat" + } + } + \ No newline at end of file diff --git a/demos/react18_with_base_config/react-app/emp.config.ts b/demos/react18_with_base_config/react-app/emp.config.ts new file mode 100644 index 00000000..df03607a --- /dev/null +++ b/demos/react18_with_base_config/react-app/emp.config.ts @@ -0,0 +1,30 @@ +import {defineConfig} from '@empjs/cli' +import pluginReact from '@empjs/plugin-react' +import {pluginRspackEmpShare} from '@empjs/share' +export default defineConfig(store => { + return { + plugins: [ + pluginReact(), + pluginRspackEmpShare({ + empRuntime: { + runtimeLib: "https://unpkg.com/@empjs/share@3.1.5/output/sdk.js", + frameworkLib: "https://unpkg.com/@empjs/libs-18@0.0.1/dist", + frameworkGlobal: 'EMP_ADAPTER_REACT', + framework: 'react', + }, + }), + ], + build: { + polyfill: { + entryCdn: "https://unpkg.com/@empjs/polyfill@0.0.1/dist/es.js", + }, + }, + server: { + port: 1801, + open: false, + }, + html: { + template: 'src/index.html', + }, + } +}) diff --git a/demos/react18_with_base_config/react-app/package.json b/demos/react18_with_base_config/react-app/package.json new file mode 100644 index 00000000..d61ed0a5 --- /dev/null +++ b/demos/react18_with_base_config/react-app/package.json @@ -0,0 +1,27 @@ +{ + "name": "runtime-18-app", + "version": "1.0.0", + "description": "", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "scripts": { + "dev": "emp dev", + "build": "emp build", + "start": "emp serve", + "stat": "emp build --analyze", + "emp": "emp" + }, + "dependencies": { + "@empjs/share": "3.2.0", + "react": "18", + "react-dom": "18" + }, + "devDependencies": { + "@empjs/cli": "3.2.7", + "@empjs/plugin-react": "3.2.0", + "@types/react": "18", + "@types/react-dom": "18" + } +} diff --git a/demos/react18_with_base_config/react-app/src/App.tsx b/demos/react18_with_base_config/react-app/src/App.tsx new file mode 100644 index 00000000..fbdcbb39 --- /dev/null +++ b/demos/react18_with_base_config/react-app/src/App.tsx @@ -0,0 +1,31 @@ +import {reactAdapter} from '@empjs/share/adapter' +import rt from '@empjs/share/runtime' +import {Suspense, lazy} from 'react' +// 实例化 +rt.init({ + name: 'runtimeHost', + shared: reactAdapter.shared, + remotes: [ + // { + // name: 'runtime_18_host', + // entry: 'http://localhost:1802/emp.js', + // }, + ], +}) +// 动态注册 +rt.register([ + { + name: 'runtimeHost', + entry: 'http://localhost:1802/output/emp.js', + // entry: 'https://emp-demo-react18-host.pages.dev/demos/react18/react-host/dist/mf-manifest.json' + }, +]) +const RemoteApp = lazy(() => rt.load('runtimeHost/App')) +console.log('RemoteApp', RemoteApp) +const App = () => ( +
+

React 18 Runtime App

+ +
+) +export default App diff --git a/demos/react18_with_base_config/react-app/src/bootstrap.tsx b/demos/react18_with_base_config/react-app/src/bootstrap.tsx new file mode 100644 index 00000000..43749fde --- /dev/null +++ b/demos/react18_with_base_config/react-app/src/bootstrap.tsx @@ -0,0 +1,5 @@ +import {createRoot} from 'react-dom/client' +import App from './App' +const dom = document.getElementById('emp-root')! +const root = createRoot(dom) +root.render() diff --git a/demos/react18_with_base_config/react-app/src/index.html b/demos/react18_with_base_config/react-app/src/index.html new file mode 100644 index 00000000..91d0ebb1 --- /dev/null +++ b/demos/react18_with_base_config/react-app/src/index.html @@ -0,0 +1,14 @@ + + + + + runtime_18_app + + + + + +
+ + + \ No newline at end of file diff --git a/demos/react18_with_base_config/react-app/src/index.tsx b/demos/react18_with_base_config/react-app/src/index.tsx new file mode 100644 index 00000000..fd65f60c --- /dev/null +++ b/demos/react18_with_base_config/react-app/src/index.tsx @@ -0,0 +1 @@ +import('./bootstrap') diff --git a/demos/react18_with_base_config/react-app/tsconfig.json b/demos/react18_with_base_config/react-app/tsconfig.json new file mode 100644 index 00000000..044e95a9 --- /dev/null +++ b/demos/react18_with_base_config/react-app/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@empjs/cli/emp-tsconfig.json", + "compilerOptions": { + "baseUrl": "./", + "paths": { + "*": ["./@mf-types/*"] + } + }, + "include": ["src"] +} diff --git a/demos/react18_with_base_config/react-host-with-base-config/emp.config.ts b/demos/react18_with_base_config/react-host-with-base-config/emp.config.ts new file mode 100644 index 00000000..973537b0 --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/emp.config.ts @@ -0,0 +1,34 @@ +import {defineConfig} from '@empjs/cli' +import pluginReact from '@empjs/plugin-react' +import {pluginRspackEmpShare} from '@empjs/share' +export default defineConfig(store => { + return { + plugins: [ + pluginReact(), + pluginRspackEmpShare({ + name: "runtimeHost", + exposes: { + './App': './src/App', + './CountComp': './src/CountComp', + }, + empRuntime: { + runtimeLib: "https://unpkg.com/@empjs/share@3.1.5/output/sdk.js", + frameworkLib: "https://unpkg.com/@empjs/libs-18@0.0.1/dist", + frameworkGlobal: 'EMP_ADAPTER_REACT', + framework: 'react', + }, + manifest: true + }), + ], + base: '/output/', + build: { + polyfill: { + entryCdn: "https://unpkg.com/@empjs/polyfill@0.0.1/dist/es.js", + }, + }, + server: { + port: 1802, + open: false, + }, + } +}) diff --git a/demos/react18_with_base_config/react-host-with-base-config/package.json b/demos/react18_with_base_config/react-host-with-base-config/package.json new file mode 100644 index 00000000..f0efaef0 --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/package.json @@ -0,0 +1,26 @@ +{ + "name": "runtime-18-host", + "version": "1.0.0", + "description": "", + "main": "index.js", + "keywords": [], + "author": "", + "license": "ISC", + "scripts": { + "dev": "emp dev", + "build": "emp build", + "start": "emp serve", + "stat": "emp build --analyze" + }, + "dependencies": { + "@empjs/share": "3.2.0", + "react": "18", + "react-dom": "18" + }, + "devDependencies": { + "@empjs/cli": "3.2.7", + "@empjs/plugin-react": "3.2.0", + "@types/react": "18", + "@types/react-dom": "18" + } +} diff --git a/demos/react18_with_base_config/react-host-with-base-config/src/App.tsx b/demos/react18_with_base_config/react-host-with-base-config/src/App.tsx new file mode 100644 index 00000000..7f465ecb --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/src/App.tsx @@ -0,0 +1,15 @@ +import {CountComp} from './CountComp' +type HostType = { + name?: string + children?: React.ReactNode +} +const App = ({name, children}: HostType) => { + return ( +
+

React 18 Runtime Host: {name ? name : ''}

+ + {children} +
+ ) +} +export default App diff --git a/demos/react18_with_base_config/react-host-with-base-config/src/CountComp.tsx b/demos/react18_with_base_config/react-host-with-base-config/src/CountComp.tsx new file mode 100644 index 00000000..e29e8ac5 --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/src/CountComp.tsx @@ -0,0 +1,11 @@ +import { version } from 'react' + +export const CountComp = () => { + return ( +
+

+ CountCompWrap React Version: {version} +

+
+ ) +} \ No newline at end of file diff --git a/demos/react18_with_base_config/react-host-with-base-config/src/bootstrap.tsx b/demos/react18_with_base_config/react-host-with-base-config/src/bootstrap.tsx new file mode 100644 index 00000000..43749fde --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/src/bootstrap.tsx @@ -0,0 +1,5 @@ +import {createRoot} from 'react-dom/client' +import App from './App' +const dom = document.getElementById('emp-root')! +const root = createRoot(dom) +root.render() diff --git a/demos/react18_with_base_config/react-host-with-base-config/src/index.tsx b/demos/react18_with_base_config/react-host-with-base-config/src/index.tsx new file mode 100644 index 00000000..fd65f60c --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/src/index.tsx @@ -0,0 +1 @@ +import('./bootstrap') diff --git a/demos/react18_with_base_config/react-host-with-base-config/tsconfig.json b/demos/react18_with_base_config/react-host-with-base-config/tsconfig.json new file mode 100644 index 00000000..044e95a9 --- /dev/null +++ b/demos/react18_with_base_config/react-host-with-base-config/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@empjs/cli/emp-tsconfig.json", + "compilerOptions": { + "baseUrl": "./", + "paths": { + "*": ["./@mf-types/*"] + } + }, + "include": ["src"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5412d00f..ec39dd8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - importers: .: @@ -175,6 +171,31 @@ importers: specifier: '18' version: 18.3.0 + demos/react18/react-host-with-base-config: + dependencies: + '@empjs/share': + specifier: 3.2.0 + version: 3.2.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.90.3) + react: + specifier: '18' + version: 18.2.0 + react-dom: + specifier: '18' + version: 18.2.0(react@18.2.0) + devDependencies: + '@empjs/cli': + specifier: 3.2.7 + version: 3.2.7(less@4.2.0)(ts-node@10.9.1)(typescript@5.3.3)(webpack@5.90.3) + '@empjs/plugin-react': + specifier: 3.2.0 + version: 3.2.0(typescript@5.3.3) + '@types/react': + specifier: '18' + version: 18.3.3 + '@types/react-dom': + specifier: '18' + version: 18.3.0 + demos/vue2: {} demos/vue2/vue-2-base: @@ -1136,7 +1157,7 @@ packages: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /@babel/parser@7.24.7: @@ -2628,7 +2649,7 @@ packages: '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.24.0)(vue@2.7.14) babel-loader: 9.1.3(@babel/core@7.24.0)(webpack@5.90.3) vue: 2.7.14 - vue-loader: 15.11.1(css-loader@7.1.2)(webpack@5.90.3) + vue-loader: 15.11.1(css-loader@7.1.2)(react-dom@18.2.0)(react@18.2.0)(webpack@5.90.3) vue-svg-inline-loader: 2.1.5 transitivePeerDependencies: - '@babel/core' @@ -5863,6 +5884,7 @@ packages: function-bind: 1.1.2 get-intrinsic: 1.2.1 set-function-length: 1.1.1 + dev: true /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} @@ -5873,7 +5895,6 @@ packages: function-bind: 1.1.2 get-intrinsic: 1.2.4 set-function-length: 1.2.2 - dev: true /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -6509,30 +6530,6 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-loader@7.1.2(@rspack/core@0.7.0)(webpack@5.90.3): - resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} - engines: {node: '>= 18.12.0'} - peerDependencies: - '@rspack/core': 0.x || 1.x - webpack: ^5.27.0 - peerDependenciesMeta: - '@rspack/core': - optional: true - webpack: - optional: true - dependencies: - '@rspack/core': 0.7.0(@swc/helpers@0.5.11) - icss-utils: 5.1.0(postcss@8.4.39) - postcss: 8.4.39 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.39) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.39) - postcss-modules-scope: 3.2.0(postcss@8.4.39) - postcss-modules-values: 4.0.0(postcss@8.4.39) - postcss-value-parser: 4.2.0 - semver: 7.6.3 - webpack: 5.90.3(webpack-cli@4.10.0) - dev: true - /css-loader@7.1.2(@rspack/core@1.0.10)(webpack@5.90.3): resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} engines: {node: '>= 18.12.0'} @@ -6804,6 +6801,7 @@ packages: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 + dev: true /define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} @@ -6812,7 +6810,6 @@ packages: es-define-property: 1.0.0 es-errors: 1.3.0 gopd: 1.0.1 - dev: true /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -7220,12 +7217,10 @@ packages: engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - dev: true /es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dev: true /es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} @@ -7748,7 +7743,6 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 hasown: 2.0.2 - dev: true /get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} @@ -7920,12 +7914,12 @@ packages: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} dependencies: get-intrinsic: 1.2.1 + dev: true /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 - dev: true /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} @@ -7970,7 +7964,6 @@ packages: engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 - dev: true /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -8299,7 +8292,7 @@ packages: dependencies: get-intrinsic: 1.2.1 has: 1.0.4 - side-channel: 1.0.4 + side-channel: 1.0.6 dev: true /internal-slot@1.0.7: @@ -8308,7 +8301,7 @@ packages: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.4 + side-channel: 1.0.6 dev: true /interpret@2.2.0: @@ -10219,7 +10212,7 @@ packages: resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} engines: {node: '>=0.6'} dependencies: - side-channel: 1.0.4 + side-channel: 1.0.6 /qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} @@ -11410,6 +11403,7 @@ packages: get-intrinsic: 1.2.1 gopd: 1.0.1 has-property-descriptors: 1.0.0 + dev: true /set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -11421,7 +11415,6 @@ packages: get-intrinsic: 1.2.4 gopd: 1.0.1 has-property-descriptors: 1.0.2 - dev: true /set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} @@ -11467,6 +11460,7 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.1 object-inspect: 1.13.1 + dev: true /side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -11476,7 +11470,6 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.2.4 object-inspect: 1.13.1 - dev: true /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -11950,7 +11943,7 @@ packages: css-tree: 2.3.1 css-what: 6.1.0 csso: 5.0.5 - picocolors: 1.0.0 + picocolors: 1.0.1 dev: true /tailwindcss@3.4.4(ts-node@10.9.1): @@ -12539,88 +12532,6 @@ packages: - whiskers dev: true - /vue-loader@15.11.1(css-loader@7.1.2)(webpack@5.90.3): - resolution: {integrity: sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==} - peerDependencies: - '@vue/compiler-sfc': ^3.0.8 - cache-loader: '*' - css-loader: '*' - prettier: '*' - vue-template-compiler: '*' - webpack: ^3.0.0 || ^4.1.0 || ^5.0.0-0 - peerDependenciesMeta: - '@vue/compiler-sfc': - optional: true - cache-loader: - optional: true - prettier: - optional: true - vue-template-compiler: - optional: true - dependencies: - '@vue/component-compiler-utils': 3.3.0(react-dom@18.2.0)(react@18.2.0) - css-loader: 7.1.2(@rspack/core@0.7.0)(webpack@5.90.3) - hash-sum: 1.0.2 - loader-utils: 1.4.2 - vue-hot-reload-api: 2.3.4 - vue-style-loader: 4.1.3 - webpack: 5.90.3(webpack-cli@4.10.0) - transitivePeerDependencies: - - arc-templates - - atpl - - babel-core - - bracket-template - - coffee-script - - dot - - dust - - dustjs-helpers - - dustjs-linkedin - - eco - - ect - - ejs - - haml-coffee - - hamlet - - hamljs - - handlebars - - hogan.js - - htmling - - jade - - jazz - - jqtpl - - just - - liquid-node - - liquor - - lodash - - marko - - mote - - mustache - - nunjucks - - plates - - pug - - qejs - - ractive - - razor-tmpl - - react - - react-dom - - slm - - squirrelly - - swig - - swig-templates - - teacup - - templayed - - then-jade - - then-pug - - tinyliquid - - toffee - - twig - - twing - - underscore - - vash - - velocityjs - - walrus - - whiskers - dev: true - /vue-loader@17.4.2(vue@3.4.31)(webpack@5.90.3): resolution: {integrity: sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==} peerDependencies: @@ -13368,3 +13279,7 @@ packages: /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} dev: true + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false