Browse Source

chore: add jdt site config

richard1015 3 years ago
parent
commit
562cdd9edf
2 changed files with 108 additions and 0 deletions
  1. 1 0
      package.json
  2. 107 0
      vite.config.jdt.ts

+ 1 - 0
package.json

@@ -43,6 +43,7 @@
     "dev:taro:vue": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:weapp",
     "dev:taro:h5": "npm run createTaroConfig && npm run checked:taro:vue && cd src/sites/mobile-taro/vue/ && npm run dev:h5",
     "build:site": "npm run checked && vite build",
+    "build:site-jdt": "npm run checked && vite build --config vite.config.jdt.ts ",
     "build:site:oss": "npm run checked && vite build --base=/nutui/3x/",
     "build": "npm run checked && vite build --config vite.config.build.ts && vite build --config vite.config.build.disperse.ts && npm run generate:types && npm run generate:themes && vite build --config vite.config.build.css.ts && vite build --config vite.config.build.locale.ts && npm run attrs",
     "build:taro:vue": "npm run checked:taro:vue && vite build --config vite.config.build.taro.vue.ts && vite build --config vite.config.build.taro.vue.disperse.ts && npm run generate:types:taro && npm run generate:themes && vite build --config vite.config.build.css.ts && vite build --config vite.config.build.locale.ts && npm run attrs",

+ 107 - 0
vite.config.jdt.ts

@@ -0,0 +1,107 @@
+import { defineConfig } from 'vite';
+import vue from '@vitejs/plugin-vue';
+import legacy from '@vitejs/plugin-legacy';
+import Markdown from 'vite-plugin-md';
+import path from 'path';
+import config from './package.json';
+const hljs = require('highlight.js'); // https://highlightjs.org/
+import { compressText } from './src/sites/doc/components/demo-block/basedUtil';
+const resolve = path.resolve;
+// https://vitejs.dev/config/
+export default defineConfig({
+  base: '/jdt/',
+  server: {
+    port: 2021,
+    host: '0.0.0.0',
+    proxy: {
+      '/devServer': {
+        target: 'https://nutui.jd.com',
+        changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/devServer/, '')
+      },
+      '/devTheme': {
+        target: 'https://nutui.jd.com/theme/source',
+        changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/devTheme/, '')
+      }
+    }
+  },
+  resolve: {
+    alias: [{ find: '@', replacement: resolve(__dirname, './src') }]
+  },
+  css: {
+    preprocessorOptions: {
+      scss: {
+        // example : additionalData: `@import "./src/design/styles/variables";`
+        // dont need include file extend .scss
+        additionalData: `@import "@/packages/styles/variables-jdt.scss";@import "@/sites/assets/styles/variables.scss";`
+      }
+    },
+    postcss: {
+      plugins: [
+        require('autoprefixer')({
+          overrideBrowserslist: ['> 0.5%', 'last 2 versions', 'ie > 11', 'iOS >= 10', 'Android >= 5']
+        })
+      ]
+    }
+  },
+  plugins: [
+    vue({
+      include: [/\.vue$/, /\.md$/]
+    }),
+    Markdown({
+      // default options passed to markdown-it
+      // see: https://markdown-it.github.io/markdown-it/
+      markdownItOptions: {
+        highlight: function (str, lang) {
+          if (lang && hljs.getLanguage(lang)) {
+            try {
+              return hljs.highlight(lang, str).value;
+            } catch (__) {}
+          }
+
+          return ''; // 使用额外的默认转义
+        }
+      },
+      markdownItSetup(md) {
+        md.use(require('markdown-it-container'), 'demo', {
+          validate: function (params) {
+            return params.match(/^demo\s*(.*)$/);
+          },
+
+          render: function (tokens, idx) {
+            const m = tokens[idx].info.trim().match(/^demo\s*(.*)$/);
+            if (tokens[idx].nesting === 1) {
+              // opening tag
+              const contentHtml = compressText(tokens[idx + 1].content);
+              return `<demo-block data-type="vue" data-value="${contentHtml}">` + md.utils.escapeHtml(m[1]) + '\n';
+            } else {
+              // closing tag
+              return '</demo-block>\n';
+            }
+          }
+        });
+      }
+    })
+    // legacy({
+    //   targets: ['defaults', 'not IE 11']
+    // })
+  ],
+  build: {
+    target: 'es2015',
+    outDir: './dist/jdt/',
+    // assetsDir: config.version,
+    cssCodeSplit: true,
+    rollupOptions: {
+      input: {
+        // doc: resolve(__dirname, 'index.html'),
+        mobile: resolve(__dirname, 'demo.html')
+      },
+      output: {
+        entryFileNames: `demo-${config.version}/[name].js`,
+        chunkFileNames: `demo-${config.version}/[name].js`,
+        assetFileNames: `demo-${config.version}/[name].[ext]`
+      }
+    }
+  }
+});