Browse Source

build styles-prebuilt with turbo

Yuki Takei 3 years ago
parent
commit
68e9e250fc

+ 1 - 9
apps/app/.gitignore

@@ -14,17 +14,9 @@ test/cypress/videos
 /public/static/js
 /public/static/styles
 /public/uploads
+/src/styles/prebuilt
 /tmp/
 
 # transpiled configuration files for production build
 /config/next-i18next.config.js
 /src/utils/next.config.utils.js
-
-# dist (for GROWI v4.x and below)
-/public/*.chunk.js
-/public/*.chunk.js.LICENSE.txt
-/public/*.bundle.js
-/public/manifest.json
-/public/dll
-/public/js
-/public/styles

+ 1 - 1
apps/app/.stylelintrc.json

@@ -4,7 +4,7 @@
   ],
   "customSyntax": "postcss-scss",
   "ignoreFiles": [
-    "src/styles/_override-bootstrap-variables.scss",
+    "src/styles/prebuilt/*.css",
     "src/linter-checker/test.scss"
   ],
   "rules": {

+ 2 - 0
apps/app/package.json

@@ -14,9 +14,11 @@
     "server": "yarn cross-env NODE_ENV=production node -r dotenv-flow/config dist/server/app.js",
     "server:ci": "yarn server --ci",
     "preserver": "yarn cross-env NODE_ENV=production yarn migrate",
+    "styles-prebuilt": "vite build -c vite.styles-prebuilt.config.ts",
     "migrate": "node -r dotenv-flow/config node_modules/.bin/migrate-mongo up -f config/migrate-mongo-config.js",
     "//// for development": "",
     "dev": "yarn cross-env NODE_ENV=development yarn ts-node-dev --inspect --transpile-only src/server/app.ts",
+    "dev:styles-prebuilt": "yarn styles-prebuilt --mode dev",
     "dev:analyze": "yarn cross-env ANALYZE=true yarn dev",
     "dev:migrate-mongo": "yarn cross-env NODE_ENV=development yarn ts-node node_modules/.bin/migrate-mongo",
     "dev:migrate": "yarn dev:migrate:status > tmp/cache/migration-status.out && yarn dev:migrate:up",

+ 2 - 2
apps/app/src/pages/_app.page.tsx

@@ -17,10 +17,10 @@ import { swrGlobalConfiguration } from '~/utils/swr-utils';
 import { CommonProps } from './utils/commons';
 import { registerTransformerForObjectId } from './utils/objectid-transformer';
 
-import '^/dist/assets/vendor.css';
+import '~/styles/prebuilt/vendor.css';
 import '~/styles/font-icons.scss';
 import '~/styles/style-app.scss';
-import '^/dist/assets/apply-colors.css';
+import '~/styles/prebuilt/apply-colors.css';
 
 const isDev = process.env.NODE_ENV === 'development';
 

+ 12 - 18
apps/app/vite.styles-prebuilt.config.ts

@@ -1,24 +1,18 @@
 import { defineConfig } from 'vite';
 
 // https://vitejs.dev/config/
-export default defineConfig(({ mode }) => {
-  const isProd = mode === 'production';
-
-  return {
-    publicDir: false,
-    build: {
-      manifest: true,
-      rollupOptions: {
-        input: [
-          '/src/styles/theme/apply-colors.scss',
-          '/src/styles/vendor.scss',
-        ],
-        output: {
-          assetFileNames: isProd
-            ? undefined
-            : 'assets/[name].[ext]', // not attach hash
-        },
+export default defineConfig({
+  publicDir: false,
+  build: {
+    outDir: 'src/styles/prebuilt',
+    rollupOptions: {
+      input: [
+        '/src/styles/theme/apply-colors.scss',
+        '/src/styles/vendor.scss',
+      ],
+      output: {
+        assetFileNames: '[name].[ext]', // not attach hash
       },
     },
-  };
+  },
 });

+ 10 - 3
turbo.json

@@ -12,7 +12,7 @@
       "outputMode": "new-only"
     },
     "@growi/app#build": {
-      "dependsOn": ["^build"],
+      "dependsOn": ["^build", "@growi/app#styles-prebuilt"],
       "outputs": [".next/**", "config/**", "dist/**"],
       "outputMode": "new-only"
     },
@@ -48,13 +48,20 @@
       "inputs": ["src/migration/*.js"],
       "outputMode": "new-only"
     },
+    "@growi/app#dev:styles-prebuilt": {
+      "outputs": ["src/styles/prebuilt/**"],
+      "inputs": [
+        "src/styles/**/*.scss"
+      ],
+      "outputMode": "new-only"
+    },
     "@growi/app#dev": {
-      "dependsOn": ["^dev", "@growi/app#dev:migrate"],
+      "dependsOn": ["^dev", "@growi/app#dev:migrate", "@growi/app#dev:styles-prebuilt"],
       "cache": false,
       "persistent": true
     },
     "@growi/app#dev:ci": {
-      "dependsOn": ["^dev", "@growi/app#dev:migrate"],
+      "dependsOn": ["^dev", "@growi/app#dev:migrate", "@growi/app#dev:styles-prebuilt"],
       "cache": false
     },
     "@growi/slackbot-proxy#dev": {