@gct-paas/build 0.1.6-dev.3 → 0.1.6-dev.5

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.
@@ -10,10 +10,10 @@ const DEFAULT_EXTERNAL = exports.DEFAULT_EXTERNAL = [
10
10
  // vue 相关依赖
11
11
  "vue", "vue-router", "vue-i18n", "pinia",
12
12
  // 第三方依赖
13
- "axios", "dayjs", "lodash-es", "qs", "bignumber.js", "wujie", "sql-formatter", "mqtt", "@fingerprintjs/fingerprintjs", "overlayscrollbars", "@jsplumb/browser-ui", "sortablejs", "bwip-js", "interactjs",
13
+ "axios", "dayjs", "lodash-es", "qs", "bignumber.js", "wujie", "sql-formatter", "mqtt", "@fingerprintjs/fingerprintjs", "overlayscrollbars", "@jsplumb/browser-ui", "sortablejs", "interactjs",
14
14
  // 组件库相关依赖
15
15
  "vuedraggable", "vue-grid-layout", "vant", "ant-design-vue",
16
16
  // 图标库相关依赖
17
17
  "@ant-design/icons-vue", "@icon-park/vue-next/es/all", "@icon-park/vue-next/icons.json",
18
18
  // @gct-paas 相关依赖
19
- "@gct-paas/build", "@gct-paas/api", "@gct-paas/core", "@gct-paas/core-mobile", "@gct-paas/core-web", "@gct-paas/core-pad", "@gct-paas/design", "@gct-paas/design-mobile", "@gct-paas/design-web", "@gct-paas/design-pad", "@gct-paas/render", "@gct-paas/render-mobile", "@gct-paas/render-pad", "@gct-paas/render-web", "@gct-paas/schema", "@gct-paas/scss", "@gct-paas/formula-editor", "@gct-paas/platform-icons"];
19
+ "@gct-paas/api", "@gct-paas/core", "@gct-paas/core-mobile", "@gct-paas/core-web", "@gct-paas/core-pad", "@gct-paas/design", "@gct-paas/design-mobile", "@gct-paas/design-web", "@gct-paas/design-pad", "@gct-paas/render", "@gct-paas/render-mobile", "@gct-paas/render-pad", "@gct-paas/render-web", "@gct-paas/schema", "@gct-paas/scss", "@gct-paas/formula-editor", "@gct-paas/platform-icons"];
@@ -7,7 +7,7 @@ exports.defineStylelintConfig = defineStylelintConfig;
7
7
  var _lodashEs = require("lodash-es");
8
8
  function defineStylelintConfig(config = {}) {
9
9
  return (0, _lodashEs.merge)({
10
- extends: ["stylelint-config-standard", "stylelint-config-standard-scss"],
10
+ extends: ["stylelint-config-standard-scss", "stylelint-config-recess-order"],
11
11
  rules: {
12
12
  "annotation-no-unknown": null,
13
13
  "color-no-invalid-hex": true,
@@ -33,6 +33,12 @@ Object.defineProperty(exports, "definePkgDevViteConfig", {
33
33
  return _vitePkgDevConfig.definePkgDevViteConfig;
34
34
  }
35
35
  });
36
+ Object.defineProperty(exports, "definePluginViteConfig", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _vitePluginConfig.definePluginViteConfig;
40
+ }
41
+ });
36
42
  Object.defineProperty(exports, "defineProjectViteConfig", {
37
43
  enumerable: true,
38
44
  get: function () {
@@ -2,5 +2,5 @@ export { defineViteBaseConfig } from './vite-config/vite-base-config';
2
2
  export { defineViteConfig, defineLoaderViteConfig } from './vite-config/vite-config';
3
3
  export { defineDevViteConfig } from './vite-config/vite-dev-config';
4
4
  export { definePkgDevViteConfig } from './vite-config/vite-pkg-dev-config';
5
- export { defineDesignPluginViteConfig, defineMobilePluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
5
+ export { definePluginViteConfig, defineDesignPluginViteConfig, defineMobilePluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
6
6
  export { defineProjectViteConfig } from './vite-config/vite-project-config';
@@ -25,7 +25,7 @@ function defineViteBaseConfig(opts = {}) {
25
25
  },
26
26
  build: {
27
27
  outDir,
28
- rollupOptions: {
28
+ rolldownOptions: {
29
29
  external: _constants.DEFAULT_EXTERNAL
30
30
  }
31
31
  },
@@ -18,6 +18,16 @@ function defineViteConfig(opts = {}) {
18
18
  rf.sync(outDir);
19
19
  return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)((0, _vite.defineConfig)({
20
20
  build: {
21
+ minify: "terser",
22
+ terserOptions: {
23
+ compress: {
24
+ drop_console: false,
25
+ dead_code: true,
26
+ unused: true,
27
+ passes: 2
28
+ },
29
+ mangle: true
30
+ },
21
31
  lib: {
22
32
  entry: _path.default.resolve(cwd, "src/index.ts"),
23
33
  formats: ["es"],
@@ -31,14 +41,11 @@ function defineLoaderViteConfig(opts = {}) {
31
41
  const cwd = process.cwd();
32
42
  const outDir = _path.default.resolve(cwd, "dist");
33
43
  rf.sync(outDir);
34
- return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)((0, _vite.defineConfig)({
44
+ return (0, _vite.mergeConfig)(defineViteConfig({
35
45
  build: {
36
46
  lib: {
37
- entry: _path.default.resolve(cwd, "src/loader.ts"),
38
- formats: ["es"],
39
- cssFileName: "index.min",
40
- fileName: "[name].[format].min"
47
+ entry: _path.default.resolve(cwd, "src/loader.ts")
41
48
  }
42
49
  }
43
- })), opts);
50
+ }), opts);
44
51
  }
@@ -7,4 +7,11 @@ import { UserConfig } from 'vite';
7
7
  * @returns {*} {UserConfig}
8
8
  */
9
9
  export declare function defineViteConfig(opts?: UserConfig): UserConfig;
10
+ /**
11
+ * 构建 loader 模块的 vite 配置,基于此配置构建基于 index 模式下的上层样式加载封装
12
+ *
13
+ * @export
14
+ * @param {UserConfig} [opts={}]
15
+ * @return {*} {UserConfig}
16
+ */
10
17
  export declare function defineLoaderViteConfig(opts?: UserConfig): UserConfig;
@@ -5,22 +5,66 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.defineDesignPluginViteConfig = defineDesignPluginViteConfig;
7
7
  exports.defineMobilePluginViteConfig = defineMobilePluginViteConfig;
8
+ exports.definePluginViteConfig = definePluginViteConfig;
8
9
  exports.defineWebPluginViteConfig = defineWebPluginViteConfig;
9
10
  var _vite = require("vite");
10
11
  var _path = _interopRequireDefault(require("path"));
12
+ var _vite2 = require("@module-federation/vite");
11
13
  var _viteBaseConfig = require("./vite-base-config.cjs");
14
+ var _constants = require("../../constants/index.cjs");
12
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const formats = ["system", "cjs", "es"];
16
+ const formats = ["es"];
17
+ function importMapExternalPlugin(modules) {
18
+ return {
19
+ name: "vite-plugin-importmap-external",
20
+ enforce: "pre",
21
+ resolveId(id) {
22
+ if (modules.includes(id) || modules.some(m => id.startsWith(m + "/"))) {
23
+ return {
24
+ id,
25
+ external: true
26
+ };
27
+ }
28
+ }
29
+ };
30
+ }
31
+ function definePluginViteConfig(opts = {}) {
32
+ return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)({
33
+ base: "/plugin-design/",
34
+ server: {
35
+ host: "0.0.0.0",
36
+ port: 7001,
37
+ allowedHosts: true
38
+ },
39
+ optimizeDeps: {
40
+ exclude: _constants.DEFAULT_EXTERNAL
41
+ },
42
+ plugins: [importMapExternalPlugin(_constants.DEFAULT_EXTERNAL), {
43
+ // Dev 模式:vite:import-analysis 把裸模块改成了 `<base>/@id/<module>`
44
+ // 这里再把它还原成裸说明符,让浏览器的 importmap 接管
45
+ name: "vite-plugin-importmap-external-dev",
46
+ enforce: "post",
47
+ apply: "serve",
48
+ transform(code) {
49
+ return code.replace(/"[^"]*\/@id\/([^"]+)"/g, (match, specifier) => {
50
+ const decoded = decodeURIComponent(specifier);
51
+ if (_constants.DEFAULT_EXTERNAL.some(m => decoded === m || decoded.startsWith(m + "/"))) {
52
+ return `"${decoded}"`;
53
+ }
54
+ return match;
55
+ });
56
+ }
57
+ }, (0, _vite2.federation)({
58
+ name: "gct-paas-plugin",
59
+ filename: "remoteEntry.js",
60
+ dts: false,
61
+ exposes: {
62
+ ".": "./src/index.ts"
63
+ }
64
+ })]
65
+ }), opts);
66
+ }
14
67
  function formatFileName(format) {
15
- if (format === "system" || format === "systemjs") {
16
- return `[name].system.min.js`;
17
- }
18
- if (format === "cjs" || format === "commonjs") {
19
- return `[name].min.cjs`;
20
- }
21
- if (format === "es" || format === "esm" || format === "module") {
22
- return `[name].esm.min.mjs`;
23
- }
24
68
  return `[name].${format}.min.js`;
25
69
  }
26
70
  function assetFileNames(assetInfo, name) {
@@ -35,7 +79,7 @@ function defineDesignPluginViteConfig(opts = {}) {
35
79
  return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)({
36
80
  build: {
37
81
  emptyOutDir: false,
38
- rollupOptions: {
82
+ rolldownOptions: {
39
83
  output: {
40
84
  assetFileNames: assetInfo => {
41
85
  return assetFileNames(assetInfo, "design");
@@ -58,7 +102,7 @@ function defineMobilePluginViteConfig(opts = {}) {
58
102
  return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)({
59
103
  build: {
60
104
  emptyOutDir: false,
61
- rollupOptions: {
105
+ rolldownOptions: {
62
106
  output: {
63
107
  assetFileNames: assetInfo => {
64
108
  return assetFileNames(assetInfo, "mobile");
@@ -81,7 +125,7 @@ function defineWebPluginViteConfig(opts = {}) {
81
125
  return (0, _vite.mergeConfig)((0, _viteBaseConfig.defineViteBaseConfig)({
82
126
  build: {
83
127
  emptyOutDir: false,
84
- rollupOptions: {
128
+ rolldownOptions: {
85
129
  output: {
86
130
  assetFileNames: assetInfo => {
87
131
  return assetFileNames(assetInfo, "web");
@@ -1,4 +1,12 @@
1
1
  import { UserConfig } from 'vite';
2
+ /**
3
+ * 插件构建配置
4
+ *
5
+ * @export
6
+ * @param {UserConfig} [opts={}]
7
+ * @return {*} {UserConfig}
8
+ */
9
+ export declare function definePluginViteConfig(opts?: UserConfig): UserConfig;
2
10
  /**
3
11
  * 设计端构建配置
4
12
  *
@@ -19,7 +19,6 @@ export const DEFAULT_EXTERNAL = [
19
19
  "overlayscrollbars",
20
20
  "@jsplumb/browser-ui",
21
21
  "sortablejs",
22
- "bwip-js",
23
22
  "interactjs",
24
23
  // 组件库相关依赖
25
24
  "vuedraggable",
@@ -31,7 +30,6 @@ export const DEFAULT_EXTERNAL = [
31
30
  "@icon-park/vue-next/es/all",
32
31
  "@icon-park/vue-next/icons.json",
33
32
  // @gct-paas 相关依赖
34
- "@gct-paas/build",
35
33
  "@gct-paas/api",
36
34
  "@gct-paas/core",
37
35
  "@gct-paas/core-mobile",
@@ -2,7 +2,10 @@ import { merge } from "lodash-es";
2
2
  export function defineStylelintConfig(config = {}) {
3
3
  return merge(
4
4
  {
5
- extends: ["stylelint-config-standard", "stylelint-config-standard-scss"],
5
+ extends: [
6
+ "stylelint-config-standard-scss",
7
+ "stylelint-config-recess-order"
8
+ ],
6
9
  rules: {
7
10
  "annotation-no-unknown": null,
8
11
  "color-no-invalid-hex": true,
@@ -2,5 +2,5 @@ export { defineViteBaseConfig } from './vite-config/vite-base-config';
2
2
  export { defineViteConfig, defineLoaderViteConfig } from './vite-config/vite-config';
3
3
  export { defineDevViteConfig } from './vite-config/vite-dev-config';
4
4
  export { definePkgDevViteConfig } from './vite-config/vite-pkg-dev-config';
5
- export { defineDesignPluginViteConfig, defineMobilePluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
5
+ export { definePluginViteConfig, defineDesignPluginViteConfig, defineMobilePluginViteConfig, defineWebPluginViteConfig, } from './vite-config/vite-plugin-config';
6
6
  export { defineProjectViteConfig } from './vite-config/vite-project-config';
package/es/vite/index.mjs CHANGED
@@ -3,6 +3,7 @@ export { defineViteConfig, defineLoaderViteConfig } from "./vite-config/vite-con
3
3
  export { defineDevViteConfig } from "./vite-config/vite-dev-config.mjs";
4
4
  export { definePkgDevViteConfig } from "./vite-config/vite-pkg-dev-config.mjs";
5
5
  export {
6
+ definePluginViteConfig,
6
7
  defineDesignPluginViteConfig,
7
8
  defineMobilePluginViteConfig,
8
9
  defineWebPluginViteConfig
@@ -19,7 +19,7 @@ export function defineViteBaseConfig(opts = {}) {
19
19
  },
20
20
  build: {
21
21
  outDir,
22
- rollupOptions: {
22
+ rolldownOptions: {
23
23
  external: DEFAULT_EXTERNAL
24
24
  }
25
25
  },
@@ -7,4 +7,11 @@ import { UserConfig } from 'vite';
7
7
  * @returns {*} {UserConfig}
8
8
  */
9
9
  export declare function defineViteConfig(opts?: UserConfig): UserConfig;
10
+ /**
11
+ * 构建 loader 模块的 vite 配置,基于此配置构建基于 index 模式下的上层样式加载封装
12
+ *
13
+ * @export
14
+ * @param {UserConfig} [opts={}]
15
+ * @return {*} {UserConfig}
16
+ */
10
17
  export declare function defineLoaderViteConfig(opts?: UserConfig): UserConfig;
@@ -10,6 +10,16 @@ export function defineViteConfig(opts = {}) {
10
10
  defineViteBaseConfig(
11
11
  defineConfig({
12
12
  build: {
13
+ minify: "terser",
14
+ terserOptions: {
15
+ compress: {
16
+ drop_console: false,
17
+ dead_code: true,
18
+ unused: true,
19
+ passes: 2
20
+ },
21
+ mangle: true
22
+ },
13
23
  lib: {
14
24
  entry: path.resolve(cwd, "src/index.ts"),
15
25
  formats: ["es"],
@@ -27,18 +37,13 @@ export function defineLoaderViteConfig(opts = {}) {
27
37
  const outDir = path.resolve(cwd, "dist");
28
38
  rf.sync(outDir);
29
39
  return mergeConfig(
30
- defineViteBaseConfig(
31
- defineConfig({
32
- build: {
33
- lib: {
34
- entry: path.resolve(cwd, "src/loader.ts"),
35
- formats: ["es"],
36
- cssFileName: "index.min",
37
- fileName: "[name].[format].min"
38
- }
40
+ defineViteConfig({
41
+ build: {
42
+ lib: {
43
+ entry: path.resolve(cwd, "src/loader.ts")
39
44
  }
40
- })
41
- ),
45
+ }
46
+ }),
42
47
  opts
43
48
  );
44
49
  }
@@ -1,4 +1,12 @@
1
1
  import { UserConfig } from 'vite';
2
+ /**
3
+ * 插件构建配置
4
+ *
5
+ * @export
6
+ * @param {UserConfig} [opts={}]
7
+ * @return {*} {UserConfig}
8
+ */
9
+ export declare function definePluginViteConfig(opts?: UserConfig): UserConfig;
2
10
  /**
3
11
  * 设计端构建配置
4
12
  *
@@ -1,17 +1,69 @@
1
1
  import { mergeConfig } from "vite";
2
2
  import path from "path";
3
+ import { federation } from "@module-federation/vite";
3
4
  import { defineViteBaseConfig } from "./vite-base-config.mjs";
4
- const formats = ["system", "cjs", "es"];
5
+ import { DEFAULT_EXTERNAL } from "../../constants/index.mjs";
6
+ const formats = ["es"];
7
+ function importMapExternalPlugin(modules) {
8
+ return {
9
+ name: "vite-plugin-importmap-external",
10
+ enforce: "pre",
11
+ resolveId(id) {
12
+ if (modules.includes(id) || modules.some((m) => id.startsWith(m + "/"))) {
13
+ return { id, external: true };
14
+ }
15
+ }
16
+ };
17
+ }
18
+ export function definePluginViteConfig(opts = {}) {
19
+ return mergeConfig(
20
+ defineViteBaseConfig({
21
+ base: "/plugin-design/",
22
+ server: {
23
+ host: "0.0.0.0",
24
+ port: 7001,
25
+ allowedHosts: true
26
+ },
27
+ optimizeDeps: {
28
+ exclude: DEFAULT_EXTERNAL
29
+ },
30
+ plugins: [
31
+ importMapExternalPlugin(DEFAULT_EXTERNAL),
32
+ {
33
+ // Dev 模式:vite:import-analysis 把裸模块改成了 `<base>/@id/<module>`
34
+ // 这里再把它还原成裸说明符,让浏览器的 importmap 接管
35
+ name: "vite-plugin-importmap-external-dev",
36
+ enforce: "post",
37
+ apply: "serve",
38
+ transform(code) {
39
+ return code.replace(
40
+ /"[^"]*\/@id\/([^"]+)"/g,
41
+ (match, specifier) => {
42
+ const decoded = decodeURIComponent(specifier);
43
+ if (DEFAULT_EXTERNAL.some(
44
+ (m) => decoded === m || decoded.startsWith(m + "/")
45
+ )) {
46
+ return `"${decoded}"`;
47
+ }
48
+ return match;
49
+ }
50
+ );
51
+ }
52
+ },
53
+ federation({
54
+ name: "gct-paas-plugin",
55
+ filename: "remoteEntry.js",
56
+ dts: false,
57
+ exposes: {
58
+ ".": "./src/index.ts"
59
+ }
60
+ })
61
+ ]
62
+ }),
63
+ opts
64
+ );
65
+ }
5
66
  function formatFileName(format) {
6
- if (format === "system" || format === "systemjs") {
7
- return `[name].system.min.js`;
8
- }
9
- if (format === "cjs" || format === "commonjs") {
10
- return `[name].min.cjs`;
11
- }
12
- if (format === "es" || format === "esm" || format === "module") {
13
- return `[name].esm.min.mjs`;
14
- }
15
67
  return `[name].${format}.min.js`;
16
68
  }
17
69
  function assetFileNames(assetInfo, name) {
@@ -27,7 +79,7 @@ export function defineDesignPluginViteConfig(opts = {}) {
27
79
  defineViteBaseConfig({
28
80
  build: {
29
81
  emptyOutDir: false,
30
- rollupOptions: {
82
+ rolldownOptions: {
31
83
  output: {
32
84
  assetFileNames: (assetInfo) => {
33
85
  return assetFileNames(assetInfo, "design");
@@ -53,7 +105,7 @@ export function defineMobilePluginViteConfig(opts = {}) {
53
105
  defineViteBaseConfig({
54
106
  build: {
55
107
  emptyOutDir: false,
56
- rollupOptions: {
108
+ rolldownOptions: {
57
109
  output: {
58
110
  assetFileNames: (assetInfo) => {
59
111
  return assetFileNames(assetInfo, "mobile");
@@ -79,7 +131,7 @@ export function defineWebPluginViteConfig(opts = {}) {
79
131
  defineViteBaseConfig({
80
132
  build: {
81
133
  emptyOutDir: false,
82
- rollupOptions: {
134
+ rolldownOptions: {
83
135
  output: {
84
136
  assetFileNames: (assetInfo) => {
85
137
  return assetFileNames(assetInfo, "web");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/build",
3
- "version": "0.1.6-dev.3",
3
+ "version": "0.1.6-dev.5",
4
4
  "type": "module",
5
5
  "description": "paas 平台核心包",
6
6
  "main": "dist/index.cjs",
@@ -71,8 +71,10 @@
71
71
  "prettier": "^3.8.1",
72
72
  "rimraf": "^6.1.3",
73
73
  "sass": "^1.98.0",
74
- "stylelint": "^17.4.0",
75
- "stylelint-config-standard-scss": "^17.0.0",
74
+ "stylelint": "~16.26.1",
75
+ "stylelint-config-recess-order": "~7.4.0",
76
+ "stylelint-config-standard-scss": "~16.0.0",
77
+ "stylelint-scss": "~6.14.0",
76
78
  "typescript-eslint": "^8.57.0",
77
79
  "unocss": "66.6.6",
78
80
  "vite": "^8.0.0",
@@ -80,7 +82,7 @@
80
82
  "vite-plugin-lib-inject-css": "^2.2.2",
81
83
  "vite-plugin-static-copy": "^3.3.0",
82
84
  "vue-eslint-parser": "^10.4.0",
83
- "vue-tsc": "^3.2.5"
85
+ "vue-tsc": "^3.2.6"
84
86
  },
85
87
  "devDependencies": {
86
88
  "@commitlint/types": "^20.4.4",
@@ -93,5 +95,9 @@
93
95
  "tsx": "^4.21.0",
94
96
  "typescript": "^5.9.3",
95
97
  "unbuild": "^3.6.1"
96
- }
98
+ },
99
+ "peerDependencies": {
100
+ "@gct-paas/scss": "*"
101
+ },
102
+ "gitHead": "6385e29b22a78c9971112aa313aa5c4154b8d0e5"
97
103
  }