jtui3.0 1.2.2 → 1.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jtui3.0",
3
- "version": "1.2.2",
3
+ "version": "1.2.4",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -14,6 +14,12 @@
14
14
  "postinstall": "node scripts/postinstall.js"
15
15
  },
16
16
  "description": "jt Components",
17
+ "engines": {
18
+ "node": ">=14.0.0",
19
+ "npm": ">=6.0.0",
20
+ "yarn": ">=1.0.0",
21
+ "pnpm": ">=6.0.0"
22
+ },
17
23
  "homepage": "http://gitlab.cdjti.com/lww/jtui3.0",
18
24
  "license": "MIT",
19
25
  "bugs": {
@@ -102,6 +108,7 @@
102
108
  "main": "lib/jtui3.0.umd.min.js",
103
109
  "files": [
104
110
  "lib/",
111
+ "scripts/",
105
112
  "package.json",
106
113
  "README.md"
107
114
  ],
package/readme.md CHANGED
@@ -1,24 +1,61 @@
1
1
  # jtui3.0
2
2
 
3
- ## Project setup
3
+ ## 安装
4
+
5
+ ### npm
6
+ ```bash
7
+ npm install jtui3.0
8
+ ```
9
+
10
+ ### yarn
11
+ ```bash
12
+ yarn add jtui3.0
13
+ ```
14
+
15
+ ### pnpm
16
+ ```bash
17
+ pnpm add jtui3.0
18
+ # 如果自动安装失败,请运行:
19
+ # pnpm add jtui3.0 --save-peer-deps
20
+ # 或手动安装所需的peerDependencies
21
+ ```
22
+
23
+ ## 自动安装peerDependencies
24
+
25
+ 本库会自动尝试安装所需的peerDependencies。如果自动安装失败,请手动安装以下依赖:
26
+
27
+ ```bash
28
+ # 使用npm
29
+ npm install element-plus@^2.10.2 vue@^3.2.13 axios@^1.7.9 dayjs@^1.11.5 echarts@^5.4.0
30
+
31
+ # 使用yarn
32
+ yarn add element-plus@^2.10.2 vue@^3.2.13 axios@^1.7.9 dayjs@^1.11.5 echarts@^5.4.0
33
+
34
+ # 使用pnpm
35
+ pnpm add element-plus@^2.10.2 vue@^3.2.13 axios@^1.7.9 dayjs@^1.11.5 echarts@^5.4.0
36
+ ```
37
+
38
+ ## 开发
39
+
40
+ ### 项目设置
4
41
  ```
5
42
  yarn install
6
43
  ```
7
44
 
8
- ### Compiles and hot-reloads for development
45
+ ### 开发环境热重载
9
46
  ```
10
47
  yarn serve
11
48
  ```
12
49
 
13
- ### Compiles and minifies for production
50
+ ### 生产环境构建
14
51
  ```
15
52
  yarn build
16
53
  ```
17
54
 
18
- ### Lints and fixes files
55
+ ### 代码检查
19
56
  ```
20
57
  yarn lint
21
58
  ```
22
59
 
23
- ### Customize configuration
24
- See [Configuration Reference](https://cli.vuejs.org/config/).
60
+ ### 自定义配置
61
+ 参考 [Vue CLI 配置文档](https://cli.vuejs.org/config/).
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ // 读取package.json中的peerDependencies
7
+ function getPeerDependencies() {
8
+ try {
9
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
10
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
11
+ return packageJson.peerDependencies || {};
12
+ } catch (error) {
13
+ console.error('读取package.json时出错:', error.message);
14
+ return {};
15
+ }
16
+ }
17
+
18
+ // 检查是否已安装依赖
19
+ function isDependencyInstalled(depName) {
20
+ try {
21
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
22
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
23
+
24
+ // 检查dependencies和devDependencies
25
+ return (packageJson.dependencies && packageJson.dependencies[depName]) ||
26
+ (packageJson.devDependencies && packageJson.devDependencies[depName]);
27
+ } catch (error) {
28
+ return false;
29
+ }
30
+ }
31
+
32
+ // 主函数
33
+ function main() {
34
+ console.log('🔍 检查peerDependencies安装状态...\n');
35
+
36
+ const peerDeps = getPeerDependencies();
37
+
38
+ if (Object.keys(peerDeps).length === 0) {
39
+ console.log('📋 没有配置peerDependencies');
40
+ return;
41
+ }
42
+
43
+ console.log(`📋 找到 ${Object.keys(peerDeps).length} 个peerDependencies:`);
44
+
45
+ let missingCount = 0;
46
+ Object.entries(peerDeps).forEach(([dep, version]) => {
47
+ const installed = isDependencyInstalled(dep);
48
+ const status = installed ? '✅ 已安装' : '❌ 未安装';
49
+ console.log(` ${status} ${dep}: ${version}`);
50
+
51
+ if (!installed) {
52
+ missingCount++;
53
+ }
54
+ });
55
+
56
+ console.log('\n📊 检查结果:');
57
+ console.log(` ✅ 已安装: ${Object.keys(peerDeps).length - missingCount}`);
58
+ console.log(` ❌ 未安装: ${missingCount}`);
59
+
60
+ if (missingCount > 0) {
61
+ console.log('\n💡 建议运行以下命令安装缺失的依赖:');
62
+ console.log(' yarn install:peer # 使用yarn');
63
+ console.log(' npm run install:peer # 使用npm');
64
+ process.exit(1);
65
+ } else {
66
+ console.log('\n🎉 所有peerDependencies都已安装!');
67
+ }
68
+ }
69
+
70
+ // 如果直接运行此脚本
71
+ if (require.main === module) {
72
+ main();
73
+ }
74
+
75
+ module.exports = {
76
+ getPeerDependencies,
77
+ isDependencyInstalled,
78
+ main
79
+ };
@@ -0,0 +1,139 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { execSync } = require('child_process');
6
+
7
+ // 获取包管理器类型
8
+ function getPackageManager() {
9
+ try {
10
+ // 检查是否有yarn.lock文件
11
+ if (fs.existsSync(path.join(process.cwd(), 'yarn.lock'))) {
12
+ return 'yarn';
13
+ }
14
+ // 检查是否有package-lock.json文件
15
+ if (fs.existsSync(path.join(process.cwd(), 'package-lock.json'))) {
16
+ return 'npm';
17
+ }
18
+ // 默认使用npm
19
+ return 'npm';
20
+ } catch (error) {
21
+ console.error('检测包管理器时出错:', error.message);
22
+ return 'npm';
23
+ }
24
+ }
25
+
26
+ // 读取package.json中的peerDependencies
27
+ function getPeerDependencies() {
28
+ try {
29
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
30
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
31
+ return packageJson.peerDependencies || {};
32
+ } catch (error) {
33
+ console.error('读取package.json时出错:', error.message);
34
+ return {};
35
+ }
36
+ }
37
+
38
+ // 检查是否已安装依赖
39
+ function isDependencyInstalled(depName) {
40
+ try {
41
+ const packageJsonPath = path.join(process.cwd(), 'package.json');
42
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
43
+
44
+ // 检查dependencies和devDependencies
45
+ return (packageJson.dependencies && packageJson.dependencies[depName]) ||
46
+ (packageJson.devDependencies && packageJson.devDependencies[depName]);
47
+ } catch (error) {
48
+ return false;
49
+ }
50
+ }
51
+
52
+ // 安装依赖
53
+ function installDependencies(dependencies, packageManager) {
54
+ if (Object.keys(dependencies).length === 0) {
55
+ console.log('✅ 没有需要安装的peerDependencies');
56
+ return;
57
+ }
58
+
59
+ const depsToInstall = [];
60
+
61
+ // 筛选出未安装的依赖
62
+ for (const [depName, version] of Object.entries(dependencies)) {
63
+ if (!isDependencyInstalled(depName)) {
64
+ depsToInstall.push(`${depName}@${version}`);
65
+ }
66
+ }
67
+
68
+ if (depsToInstall.length === 0) {
69
+ console.log('✅ 所有peerDependencies已安装');
70
+ return;
71
+ }
72
+
73
+ console.log(`📦 需要安装的peerDependencies: ${depsToInstall.length}个`);
74
+
75
+ try {
76
+ let installCommand;
77
+ if (packageManager === 'yarn') {
78
+ installCommand = `yarn add ${depsToInstall.join(' ')} --dev`;
79
+ } else {
80
+ installCommand = `npm install ${depsToInstall.join(' ')} --save-dev`;
81
+ }
82
+
83
+ console.log(`🔧 使用 ${packageManager} 安装依赖...`);
84
+ execSync(installCommand, { stdio: 'inherit' });
85
+
86
+ console.log('✅ peerDependencies安装完成');
87
+ } catch (error) {
88
+ console.error('❌ 安装依赖时出错:', error.message);
89
+ console.log('💡 请手动安装以下依赖:');
90
+ depsToInstall.forEach(dep => console.log(` ${dep}`));
91
+ process.exit(1);
92
+ }
93
+ }
94
+
95
+ // 主函数
96
+ function main() {
97
+ // 检查环境变量,避免在CI环境中运行
98
+ if (process.env.CI || process.env.NODE_ENV === 'production') {
99
+ console.log('🚫 CI环境或生产环境,跳过peerDependencies安装');
100
+ return;
101
+ }
102
+
103
+ // 检查是否明确禁用安装
104
+ if (process.env.INSTALL_PEER_DEPS === 'false') {
105
+ console.log('🚫 已禁用peerDependencies安装');
106
+ return;
107
+ }
108
+
109
+ console.log('🔍 开始检查peerDependencies...');
110
+
111
+ const packageManager = getPackageManager();
112
+ console.log(`📦 检测到包管理器: ${packageManager}`);
113
+
114
+ const peerDeps = getPeerDependencies();
115
+ console.log(`📋 找到 ${Object.keys(peerDeps).length} 个peerDependencies`);
116
+
117
+ if (Object.keys(peerDeps).length > 0) {
118
+ console.log('📋 peerDependencies列表:');
119
+ Object.entries(peerDeps).forEach(([dep, version]) => {
120
+ const installed = isDependencyInstalled(dep) ? '✅' : '❌';
121
+ console.log(` ${installed} ${dep}: ${version}`);
122
+ });
123
+ }
124
+
125
+ installDependencies(peerDeps, packageManager);
126
+ }
127
+
128
+ // 如果直接运行此脚本
129
+ if (require.main === module) {
130
+ main();
131
+ }
132
+
133
+ module.exports = {
134
+ getPackageManager,
135
+ getPeerDependencies,
136
+ isDependencyInstalled,
137
+ installDependencies,
138
+ main
139
+ };
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env node
2
+
3
+ // postinstall脚本,用于在npm/yarn install后自动运行
4
+ const path = require('path');
5
+ const fs = require('fs');
6
+
7
+ // 尝试加载安装脚本
8
+ function loadInstallScript() {
9
+ try {
10
+ // 尝试从当前目录加载
11
+ const scriptPath = path.join(__dirname, 'install-peer-deps.js');
12
+ if (fs.existsSync(scriptPath)) {
13
+ return require(scriptPath);
14
+ }
15
+
16
+ // 尝试从上级目录加载(针对pnpm情况)
17
+ const parentScriptPath = path.join(__dirname, '..', 'scripts', 'install-peer-deps.js');
18
+ if (fs.existsSync(parentScriptPath)) {
19
+ return require(parentScriptPath);
20
+ }
21
+
22
+ console.log('❌ 无法找到install-peer-deps.js脚本');
23
+ return null;
24
+ } catch (error) {
25
+ console.log('❌ 加载安装脚本时出错:', error.message);
26
+ return null;
27
+ }
28
+ }
29
+
30
+ // 只有在开发环境或明确启用时才运行
31
+ if (process.env.NODE_ENV !== 'production' && process.env.INSTALL_PEER_DEPS !== 'false') {
32
+ console.log('🚀 jtui3.0: 运行postinstall脚本...');
33
+
34
+ const installModule = loadInstallScript();
35
+ if (installModule && installModule.main) {
36
+ installModule.main();
37
+ } else {
38
+ console.log('💡 jtui3.0: 建议手动安装peerDependencies:');
39
+ console.log(' npm install jtui3.0 --save-peer-deps');
40
+ console.log(' 或手动安装以下依赖:');
41
+ console.log(' element-plus@^2.10.2, vue@^3.2.13, axios@^1.7.9 等');
42
+ }
43
+ } else {
44
+ console.log('🚫 jtui3.0: 跳过postinstall脚本执行');
45
+ }