@gct-paas/build 0.1.5-dev.2 → 0.1.5-dev.4

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.
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.PROD_MODE = exports.DEV_MODE = exports.DEFAULT_EXTERNAL = void 0;
6
+ exports.PROD_MODE = exports.DEV_MODE = exports.DEFAULT_IGNORED_DEPENDENCIES = exports.DEFAULT_EXTERNAL = void 0;
7
7
  const DEV_MODE = exports.DEV_MODE = "development";
8
8
  const PROD_MODE = exports.PROD_MODE = "production";
9
- const DEFAULT_EXTERNAL = exports.DEFAULT_EXTERNAL = ["vue", "vue-router", "vue-i18n", "axios", "dayjs", "lodash-es", "qs", "pinia", "vuedraggable", "sortablejs", "vue-grid-layout", "vant", "ant-design-vue", "@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/mobile", "@gct-paas/scss", "@gct-paas/web", "@gct-paas/pad", "systemjs"];
9
+ const DEFAULT_EXTERNAL = exports.DEFAULT_EXTERNAL = ["vue", "vue-router", "vue-i18n", "axios", "dayjs", "lodash-es", "qs", "pinia", "vuedraggable", "sortablejs", "vue-grid-layout", "vant", "ant-design-vue", "@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/mobile", "@gct-paas/scss", "@gct-paas/web", "@gct-paas/pad", "systemjs"];
10
+ const DEFAULT_IGNORED_DEPENDENCIES = exports.DEFAULT_IGNORED_DEPENDENCIES = ["path-browserify", "qx-util"];
@@ -10,3 +10,7 @@ export declare const PROD_MODE = "production";
10
10
  * 默认需要忽略编译的外部依赖
11
11
  */
12
12
  export declare const DEFAULT_EXTERNAL: string[];
13
+ /**
14
+ * 默认忽略编译的依赖列表,用于 pkg 包开发编译时
15
+ */
16
+ export declare const DEFAULT_IGNORED_DEPENDENCIES: string[];
@@ -8,6 +8,7 @@ var _vite = require("vite");
8
8
  var _pluginVue = _interopRequireDefault(require("@vitejs/plugin-vue"));
9
9
  var _pluginVueJsx = _interopRequireDefault(require("@vitejs/plugin-vue-jsx"));
10
10
  var _pluginJson = _interopRequireDefault(require("@rollup/plugin-json"));
11
+ var _viteTsconfigPaths = _interopRequireDefault(require("vite-tsconfig-paths"));
11
12
  var _path = _interopRequireDefault(require("path"));
12
13
  var _constants = require("../../constants/index.cjs");
13
14
  var _util = require("../../util/index.cjs");
@@ -29,7 +30,7 @@ function defineViteBaseConfig(opts = {}) {
29
30
  external: _constants.DEFAULT_EXTERNAL
30
31
  }
31
32
  },
32
- plugins: [(0, _pluginJson.default)(), (0, _pluginVue.default)(), (0, _pluginVueJsx.default)()
33
+ plugins: [(0, _viteTsconfigPaths.default)(), (0, _pluginJson.default)(), (0, _pluginVue.default)(), (0, _pluginVueJsx.default)()
33
34
  // 关系 babel 配置,这个配置要放在具体的 project vite 编译配置中,底包应该是干净的
34
35
  // babel({
35
36
  // babelHelpers: 'bundled',
@@ -11,9 +11,12 @@ var _pluginVue = _interopRequireDefault(require("@vitejs/plugin-vue"));
11
11
  var _pluginVueJsx = _interopRequireDefault(require("@vitejs/plugin-vue-jsx"));
12
12
  var _pluginJson = _interopRequireDefault(require("@rollup/plugin-json"));
13
13
  var _vitePluginLibInjectCss = require("vite-plugin-lib-inject-css");
14
+ var _viteTsconfigPaths = _interopRequireDefault(require("vite-tsconfig-paths"));
15
+ var _vitePluginStaticCopy = require("vite-plugin-static-copy");
14
16
  var _vitePluginDts = _interopRequireDefault(require("vite-plugin-dts"));
15
- var _constants = require("../../constants/index.cjs");
17
+ var _fs = require("fs");
16
18
  var _util = require("../../util/index.cjs");
19
+ var _constants = require("../../constants/index.cjs");
17
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -21,6 +24,14 @@ function definePkgDevViteConfig(opts = {}) {
21
24
  const cwd = process.cwd();
22
25
  const outDir = _path.default.resolve(cwd, "es");
23
26
  rf.sync(outDir);
27
+ let pkgDependencies = [];
28
+ try {
29
+ const pkgJsonPath = _path.default.resolve(cwd, "package.json");
30
+ const pkgJson = JSON.parse((0, _fs.readFileSync)(pkgJsonPath, "utf-8"));
31
+ pkgDependencies = Object.keys(pkgJson.dependencies || {});
32
+ } catch (error) {
33
+ console.warn("Failed to read package.json dependencies:", error);
34
+ }
24
35
  return (0, _util.mergeConfig)((0, _vite.defineConfig)({
25
36
  css: {
26
37
  preprocessorOptions: {
@@ -34,7 +45,18 @@ function definePkgDevViteConfig(opts = {}) {
34
45
  target: "esnext",
35
46
  minify: false,
36
47
  rollupOptions: {
37
- external: _constants.DEFAULT_EXTERNAL,
48
+ external: id => {
49
+ if (pkgDependencies.some(dep => id === dep || id.startsWith(dep + "/"))) {
50
+ return true;
51
+ }
52
+ if (_util.IS_NODE_MODULE.test(id)) {
53
+ return true;
54
+ }
55
+ if (_constants.DEFAULT_EXTERNAL.includes(id)) {
56
+ return true;
57
+ }
58
+ return false;
59
+ },
38
60
  output: {
39
61
  preserveModules: true,
40
62
  entryFileNames: ({
@@ -49,10 +71,18 @@ function definePkgDevViteConfig(opts = {}) {
49
71
  formats: ["es"]
50
72
  }
51
73
  },
52
- plugins: [(0, _pluginJson.default)(), (0, _pluginVue.default)(), (0, _pluginVueJsx.default)(), (0, _vitePluginLibInjectCss.libInjectCss)(), (0, _vitePluginDts.default)({
74
+ plugins: [(0, _viteTsconfigPaths.default)(), (0, _pluginJson.default)(), (0, _pluginVue.default)(), (0, _pluginVueJsx.default)(), (0, _vitePluginLibInjectCss.libInjectCss)(), (0, _vitePluginDts.default)({
53
75
  outDir: [outDir],
54
76
  // 排除测试目录,以及测试文件
55
77
  exclude: ["**/test/**", "**/*.test.ts", "**/*.test.tsx", "**/*.spec.ts", "**/*.spec.tsx"]
78
+ }), (0, _vitePluginStaticCopy.viteStaticCopy)({
79
+ targets: [{
80
+ // 匹配 src 目录下所有深层层级的 .d.ts 文件
81
+ src: "src/types",
82
+ // 关键:dest 设置为 '.' 配合下面的 transform 逻辑
83
+ // 或者直接指定输出到 dist 里的某个子目录,比如 'types'
84
+ dest: "."
85
+ }]
56
86
  })]
57
87
  }), opts);
58
88
  }
@@ -10,3 +10,7 @@ export declare const PROD_MODE = "production";
10
10
  * 默认需要忽略编译的外部依赖
11
11
  */
12
12
  export declare const DEFAULT_EXTERNAL: string[];
13
+ /**
14
+ * 默认忽略编译的依赖列表,用于 pkg 包开发编译时
15
+ */
16
+ export declare const DEFAULT_IGNORED_DEPENDENCIES: string[];
@@ -30,3 +30,4 @@ export const DEFAULT_EXTERNAL = [
30
30
  "@gct-paas/pad",
31
31
  "systemjs"
32
32
  ];
33
+ export const DEFAULT_IGNORED_DEPENDENCIES = ["path-browserify", "qx-util"];
@@ -2,6 +2,7 @@ import { defineConfig } from "vite";
2
2
  import vue from "@vitejs/plugin-vue";
3
3
  import vueJsx from "@vitejs/plugin-vue-jsx";
4
4
  import json from "@rollup/plugin-json";
5
+ import tsconfigPaths from "vite-tsconfig-paths";
5
6
  import path from "path";
6
7
  import { DEFAULT_EXTERNAL } from "../../constants/index.mjs";
7
8
  import { mergeConfig } from "../../util/index.mjs";
@@ -24,6 +25,7 @@ export function defineViteBaseConfig(opts = {}) {
24
25
  }
25
26
  },
26
27
  plugins: [
28
+ tsconfigPaths(),
27
29
  json(),
28
30
  vue(),
29
31
  vueJsx()
@@ -5,13 +5,24 @@ import vue from "@vitejs/plugin-vue";
5
5
  import vueJsx from "@vitejs/plugin-vue-jsx";
6
6
  import json from "@rollup/plugin-json";
7
7
  import { libInjectCss } from "vite-plugin-lib-inject-css";
8
+ import tsconfigPaths from "vite-tsconfig-paths";
9
+ import { viteStaticCopy } from "vite-plugin-static-copy";
8
10
  import dts from "vite-plugin-dts";
11
+ import { readFileSync } from "fs";
12
+ import { mergeConfig, IS_NODE_MODULE } from "../../util/index.mjs";
9
13
  import { DEFAULT_EXTERNAL } from "../../constants/index.mjs";
10
- import { mergeConfig } from "../../util/index.mjs";
11
14
  export function definePkgDevViteConfig(opts = {}) {
12
15
  const cwd = process.cwd();
13
16
  const outDir = path.resolve(cwd, "es");
14
17
  rf.sync(outDir);
18
+ let pkgDependencies = [];
19
+ try {
20
+ const pkgJsonPath = path.resolve(cwd, "package.json");
21
+ const pkgJson = JSON.parse(readFileSync(pkgJsonPath, "utf-8"));
22
+ pkgDependencies = Object.keys(pkgJson.dependencies || {});
23
+ } catch (error) {
24
+ console.warn("Failed to read package.json dependencies:", error);
25
+ }
15
26
  return mergeConfig(
16
27
  defineConfig({
17
28
  css: {
@@ -26,7 +37,20 @@ export function definePkgDevViteConfig(opts = {}) {
26
37
  target: "esnext",
27
38
  minify: false,
28
39
  rollupOptions: {
29
- external: DEFAULT_EXTERNAL,
40
+ external: (id) => {
41
+ if (pkgDependencies.some(
42
+ (dep) => id === dep || id.startsWith(dep + "/")
43
+ )) {
44
+ return true;
45
+ }
46
+ if (IS_NODE_MODULE.test(id)) {
47
+ return true;
48
+ }
49
+ if (DEFAULT_EXTERNAL.includes(id)) {
50
+ return true;
51
+ }
52
+ return false;
53
+ },
30
54
  output: {
31
55
  preserveModules: true,
32
56
  entryFileNames: ({ name }) => `${name}.mjs`,
@@ -40,6 +64,7 @@ export function definePkgDevViteConfig(opts = {}) {
40
64
  }
41
65
  },
42
66
  plugins: [
67
+ tsconfigPaths(),
43
68
  json(),
44
69
  vue(),
45
70
  vueJsx(),
@@ -54,6 +79,17 @@ export function definePkgDevViteConfig(opts = {}) {
54
79
  "**/*.spec.ts",
55
80
  "**/*.spec.tsx"
56
81
  ]
82
+ }),
83
+ viteStaticCopy({
84
+ targets: [
85
+ {
86
+ // 匹配 src 目录下所有深层层级的 .d.ts 文件
87
+ src: "src/types",
88
+ // 关键:dest 设置为 '.' 配合下面的 transform 逻辑
89
+ // 或者直接指定输出到 dist 里的某个子目录,比如 'types'
90
+ dest: "."
91
+ }
92
+ ]
57
93
  })
58
94
  ]
59
95
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/build",
3
- "version": "0.1.5-dev.2",
3
+ "version": "0.1.5-dev.4",
4
4
  "type": "module",
5
5
  "description": "paas 平台核心包",
6
6
  "main": "dist/index.cjs",
@@ -91,6 +91,8 @@
91
91
  "vite": "^7.3.1",
92
92
  "vite-plugin-dts": "^4.5.4",
93
93
  "vite-plugin-lib-inject-css": "^2.2.2",
94
+ "vite-plugin-static-copy": "^3.2.0",
95
+ "vite-tsconfig-paths": "^6.0.5",
94
96
  "vue-eslint-parser": "^10.2.0",
95
97
  "vue-tsc": "^3.2.4"
96
98
  },
@@ -105,6 +107,5 @@
105
107
  "tsx": "^4.21.0",
106
108
  "typescript": "^5.9.3",
107
109
  "unbuild": "^3.6.1"
108
- },
109
- "gitHead": "d5c70cf34961e0bd1736b97f04b4afdf06386d23"
110
+ }
110
111
  }