diff --git a/packages/cli/core/template/package.json b/packages/cli/core/template/package.json index 503d1254bf..75e63d6bc2 100644 --- a/packages/cli/core/template/package.json +++ b/packages/cli/core/template/package.json @@ -39,7 +39,11 @@ "@leanup/cli": "1.3.1", "@leanup/git-hooks": "1.3.1", "@leanup/stack": "1.3.1", + "@leanup/stack-vite": "1.3.1", "@leanup/stack-webpack": "1.3.1", + "@unocss/preset-mini": "0.22.7", + "@unocss/vite": "0.22.7", + "@unocss/webpack": "0.22.7", "chromedriver": "97.0.4", "npm-check-updates": "12.2.1", "postcss-windicss": "1.0.0", diff --git a/packages/cli/core/template/unocss.config.ts b/packages/cli/core/template/unocss.config.ts new file mode 100644 index 0000000000..0a8a88425b --- /dev/null +++ b/packages/cli/core/template/unocss.config.ts @@ -0,0 +1,6 @@ +import { presetMini } from '@unocss/preset-mini'; +import { defineConfig } from '@unocss/webpack'; + +export default defineConfig({ + presets: [presetMini()], +}); diff --git a/packages/cli/frameworks/solid/template/vite.config.js b/packages/cli/frameworks/solid/template/vite.config.js deleted file mode 100644 index 7b052d47a9..0000000000 --- a/packages/cli/frameworks/solid/template/vite.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@leanup/stack-solid/vite.config'); diff --git a/packages/cli/frameworks/solid/template/vite.config.ts b/packages/cli/frameworks/solid/template/vite.config.ts new file mode 100644 index 0000000000..7aebdaaed8 --- /dev/null +++ b/packages/cli/frameworks/solid/template/vite.config.ts @@ -0,0 +1,11 @@ +import { mergeConfig } from 'vite'; +import config from '@leanup/stack-solid/vite.config'; +import UnocssPlugin from '@unocss/vite'; + +export default mergeConfig(config, { + plugins: [UnocssPlugin()], + build: { + polyfillDynamicImport: false, + target: 'esnext', + }, +}); diff --git a/packages/stack/frameworks/solid/package-lock.json b/packages/stack/frameworks/solid/package-lock.json index 6e549f8bb8..d148e4ea78 100644 --- a/packages/stack/frameworks/solid/package-lock.json +++ b/packages/stack/frameworks/solid/package-lock.json @@ -1059,6 +1059,16 @@ "babel-loader": "8.2.3" } }, + "@leanup/stack-vite": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@leanup/stack-vite/-/stack-vite-1.3.1.tgz", + "integrity": "sha512-7YfzNj626Q+fsvsPV0sLxwpWYQr8kQjB4ropEQZMZt/PCnm2d7L41ipWiyl1x+0XaLqqpFp84Waiws/xltCv0w==", + "dev": true, + "requires": { + "vite": "2.7.13", + "vite-plugin-replace": "0.1.1" + } + }, "@leanup/stack-webpack": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@leanup/stack-webpack/-/stack-webpack-1.3.1.tgz", @@ -2987,7 +2997,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "optional": true }, "function-bind": { @@ -3385,6 +3394,11 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, + "is-what": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.7.tgz", + "integrity": "sha512-DBVOQNiPKnGMxRMLIYSwERAS5MVY1B7xYiGnpgctsOFvVDz9f9PFXXxMcTOHuoqYp4NK9qFYQaIC1NRRxLMpBQ==" + }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -3594,6 +3608,15 @@ "fs-monkey": "1.0.3" } }, + "merge-anything": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/merge-anything/-/merge-anything-5.0.2.tgz", + "integrity": "sha512-POPQBWkBC0vxdgzRJ2Mkj4+2NTKbvkHo93ih+jGDhNMLzIw+rYKjO7949hOQM2X7DxMHH1uoUkwWFLIzImw7gA==", + "requires": { + "is-what": "^4.1.6", + "ts-toolbelt": "^9.6.0" + } + }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -3758,8 +3781,7 @@ "nanoid": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", - "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", - "dev": true + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==" }, "negotiator": { "version": "0.6.3", @@ -4021,7 +4043,6 @@ "version": "8.4.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", - "dev": true, "requires": { "nanoid": "^3.2.0", "picocolors": "^1.0.0", @@ -4341,6 +4362,14 @@ "glob": "^7.1.3" } }, + "rollup": { + "version": "2.67.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.67.0.tgz", + "integrity": "sha512-W83AaERwvDiHwHEF/dfAfS3z1Be5wf7n+pO3ZAO5IQadCT2lBTr7WQ2MwZZe+nodbD+n3HtC4OCOAdsOPPcKZQ==", + "requires": { + "fsevents": "~2.3.2" + } + }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -4577,6 +4606,21 @@ "websocket-driver": "^0.7.4" } }, + "solid-js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.3.5.tgz", + "integrity": "sha512-PUom2cCARfvvgxI7cwOhfXMrZZZxjp+vIrb5fzVNBFyICy8A30wTqExwfUv457eJYgKpii2D3qStW9ILtKnShw==" + }, + "solid-refresh": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/solid-refresh/-/solid-refresh-0.4.0.tgz", + "integrity": "sha512-5XCUz845n/sHPzKK2i2G2EeV61tAmzv6SqzqhXcPaYhrgzVy7nKTQaBpKK8InKrriq9Z2JFF/mguIU00t/73xw==", + "requires": { + "@babel/generator": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -4591,8 +4635,7 @@ "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-support": { "version": "0.5.21", @@ -4821,6 +4864,11 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "ts-toolbelt": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz", + "integrity": "sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==" + }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -4905,6 +4953,166 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, + "vite": { + "version": "2.7.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.7.13.tgz", + "integrity": "sha512-Mq8et7f3aK0SgSxjDNfOAimZGW9XryfHRa/uV0jseQSilg+KhYDSoNb9h1rknOy6SuMkvNDLKCYAYYUMCE+IgQ==", + "requires": { + "esbuild": "^0.13.12", + "fsevents": "~2.3.2", + "postcss": "^8.4.5", + "resolve": "^1.20.0", + "rollup": "^2.59.0" + }, + "dependencies": { + "esbuild": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.15.tgz", + "integrity": "sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==", + "requires": { + "esbuild-android-arm64": "0.13.15", + "esbuild-darwin-64": "0.13.15", + "esbuild-darwin-arm64": "0.13.15", + "esbuild-freebsd-64": "0.13.15", + "esbuild-freebsd-arm64": "0.13.15", + "esbuild-linux-32": "0.13.15", + "esbuild-linux-64": "0.13.15", + "esbuild-linux-arm": "0.13.15", + "esbuild-linux-arm64": "0.13.15", + "esbuild-linux-mips64le": "0.13.15", + "esbuild-linux-ppc64le": "0.13.15", + "esbuild-netbsd-64": "0.13.15", + "esbuild-openbsd-64": "0.13.15", + "esbuild-sunos-64": "0.13.15", + "esbuild-windows-32": "0.13.15", + "esbuild-windows-64": "0.13.15", + "esbuild-windows-arm64": "0.13.15" + } + }, + "esbuild-android-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz", + "integrity": "sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==", + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz", + "integrity": "sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==", + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz", + "integrity": "sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==", + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz", + "integrity": "sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==", + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz", + "integrity": "sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==", + "optional": true + }, + "esbuild-linux-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz", + "integrity": "sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==", + "optional": true + }, + "esbuild-linux-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz", + "integrity": "sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==", + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz", + "integrity": "sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==", + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz", + "integrity": "sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==", + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz", + "integrity": "sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==", + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz", + "integrity": "sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==", + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz", + "integrity": "sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==", + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz", + "integrity": "sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==", + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz", + "integrity": "sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==", + "optional": true + }, + "esbuild-windows-32": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz", + "integrity": "sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==", + "optional": true + }, + "esbuild-windows-64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz", + "integrity": "sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==", + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.13.15", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz", + "integrity": "sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==", + "optional": true + } + } + }, + "vite-plugin-replace": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-replace/-/vite-plugin-replace-0.1.1.tgz", + "integrity": "sha512-v+okl3JNt2pf1jDYijw+WPVt6h9FWa/atTi+qnSFBqmKThLTDhlesx0r3bh+oFPmxRJmis5tNx9HtN6lGFoqWg==", + "dev": true + }, + "vite-plugin-solid": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/vite-plugin-solid/-/vite-plugin-solid-2.2.5.tgz", + "integrity": "sha512-SJkXdVnrPnhAWzs8Vi/+9oViUfx6TiQo8y1FFlDiyUdZR4nxTyGmRzz4xx+CC75GJL3hgDWac/zYA6sYq8SQAg==", + "requires": { + "@babel/core": "^7.16.12", + "@babel/preset-typescript": "^7.16.7", + "babel-preset-solid": "^1.3.0", + "merge-anything": "^5.0.2", + "solid-js": "^1.3.3", + "solid-refresh": "^0.4.0", + "vite": "^2.7.13" + } + }, "watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", diff --git a/packages/stack/frameworks/solid/package.json b/packages/stack/frameworks/solid/package.json index ffa941551b..4e01721eca 100644 --- a/packages/stack/frameworks/solid/package.json +++ b/packages/stack/frameworks/solid/package.json @@ -40,9 +40,11 @@ "dependencies": { "@leanup/cli-core-babel": "1.3.1", "@snowpack/plugin-babel": "2.1.7", - "babel-preset-solid": "1.3.5" + "babel-preset-solid": "1.3.5", + "vite-plugin-solid": "2.2.5" }, "devDependencies": { + "@leanup/stack-vite": "1.3.1", "@leanup/stack-webpack": "1.3.1", "@types/node": "17.0.14", "typescript": "4.5.5" diff --git a/packages/stack/frameworks/solid/vite.config.js b/packages/stack/frameworks/solid/vite.config.js index e0b2c195af..3dc585a808 100644 --- a/packages/stack/frameworks/solid/vite.config.js +++ b/packages/stack/frameworks/solid/vite.config.js @@ -1,3 +1,7 @@ +const { mergeConfig } = require('vite'); const config = require('@leanup/stack-vite/vite.config'); -// https://www.npmjs.com/package/vite-plugin-solid -module.exports = config; +const solidPlugin = require('vite-plugin-solid'); + +module.exports = mergeConfig(config, { + plugins: [solidPlugin()], +}); diff --git a/packages/stack/vite/vite.config.js b/packages/stack/vite/vite.config.js index a9399c4163..858cb6959c 100644 --- a/packages/stack/vite/vite.config.js +++ b/packages/stack/vite/vite.config.js @@ -1,9 +1,9 @@ const { resolve } = require('path'); const { replaceCodePlugin } = require('vite-plugin-replace'); -const { REPLACEMENTS } = require('@leanup/stack/lib/replacements'); +const { REPLACEMENTS } = require('@leanup/stack'); // https://vitejs.dev/config/#server-proxy -const { PROXIES } = require('@leanup/stack/lib/proxies'); +const { PROXIES } = require('@leanup/stack'); // https://vitejs.dev/config/ module.exports = {