@jayfong/x-server 1.33.7 → 1.33.9

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.
@@ -41,6 +41,8 @@ class BuildUtil {
41
41
 
42
42
  const distPm2File = _nodePath.default.join(distDir, 'pm2.config.js');
43
43
 
44
+ const distNoInstallFile = _nodePath.default.join(distDir, 'no_install.lock');
45
+
44
46
  const distBundleFile = _nodePath.default.join(tempDir, `app.${pkgContent.version}.tgz`);
45
47
 
46
48
  await _fsExtra.default.ensureDir(distDir);
@@ -160,17 +162,25 @@ class BuildUtil {
160
162
  },
161
163
  ],
162
164
  }
163
- `); // 安装 external 依赖
164
-
165
- await (0, _execa.default)('tyn', {
166
- cwd: distDir,
167
- stdio: 'inherit',
168
- env: {
169
- // 禁止 yarn 更新检测,因网络原因容易超时长时间卡住
170
- // https://classic.yarnpkg.com/lang/en/docs/yarnrc/#toc-disable-self-update-check
171
- yarn_disable_self_update_check: 'true'
165
+ `);
166
+
167
+ if (externalWithVersions.length) {
168
+ if (options.noInstall) {
169
+ await _fsExtra.default.writeFile(distNoInstallFile, '');
170
+ } else {
171
+ // 安装 external 依赖
172
+ await (0, _execa.default)('tyn', {
173
+ cwd: distDir,
174
+ stdio: 'inherit',
175
+ env: {
176
+ // 禁止 yarn 更新检测,因网络原因容易超时长时间卡住
177
+ // https://classic.yarnpkg.com/lang/en/docs/yarnrc/#toc-disable-self-update-check
178
+ yarn_disable_self_update_check: 'true'
179
+ }
180
+ });
172
181
  }
173
- }); // 打包为 tgz
182
+ } // 打包为 tgz
183
+
174
184
 
175
185
  await _compressing.default.tgz.compressDir(distDir, distBundleFile);
176
186
  }
@@ -96,6 +96,11 @@ _yargs.default.command('dev', '开始开发', _ => _.positional('index', {
96
96
  describe: '是否压缩',
97
97
  type: 'boolean',
98
98
  default: true
99
+ }).positional('no-install', {
100
+ alias: 'n',
101
+ describe: '是否不本地安装外部依赖',
102
+ type: 'boolean',
103
+ default: false
99
104
  }), async argv => {
100
105
  process.env.NODE_ENV = 'production';
101
106
  const envs = await _env_util.EnvUtil.parseFile({
@@ -120,7 +125,8 @@ _yargs.default.command('dev', '开始开发', _ => _.positional('index', {
120
125
  cwd: process.cwd(),
121
126
  external: argv.external,
122
127
  inlineEnvs: envs,
123
- minify: argv.minify
128
+ minify: argv.minify,
129
+ noInstall: argv['no-install']
124
130
  });
125
131
  console.log('构建成功');
126
132
  }).command('api', '生成 API', async () => {
@@ -47,6 +47,7 @@ class DeployUtil {
47
47
  set -ex
48
48
  tar -zxvf ${remoteAppFile} -C ${appDir}
49
49
  cd ${appDir}/dist
50
+ [ -f no_install.lock ] && yarn_disable_self_update_check=true tyn
50
51
  pm2 startOrReload pm2.config.js
51
52
  `, {
52
53
  cwd: options.cwd,
@@ -84,17 +84,28 @@ class Handler {
84
84
  const process = async (type, fn) => {
85
85
  if (_.type === type) {
86
86
  let sent = false;
87
- await fn({
88
- data: _.data,
89
- send: (...args) => {
90
- sent = true;
91
- return send(...args);
92
- },
93
- dispose: dispose
94
- });
95
-
96
- if (!sent) {
97
- send();
87
+
88
+ try {
89
+ await fn({
90
+ data: _.data,
91
+ send: data => {
92
+ sent = true;
93
+ return send(data);
94
+ },
95
+ dispose: dispose
96
+ });
97
+
98
+ if (!sent) {
99
+ send();
100
+ }
101
+ } catch (err) {
102
+ const _err = _http_error.HttpError.isHttpError(err) ? err : new _http_error.HttpError.InternalServerError();
103
+
104
+ send({
105
+ statusCode: _err.statusCode,
106
+ error: _err.name,
107
+ message: _err.message
108
+ });
98
109
  }
99
110
  }
100
111
  };
@@ -4,6 +4,7 @@ export interface BuildOptions {
4
4
  external?: string[];
5
5
  inlineEnvs?: ParsedEnv[];
6
6
  minify?: boolean;
7
+ noInstall?: boolean;
7
8
  }
8
9
  export declare class BuildUtil {
9
10
  static build(options: BuildOptions): Promise<void>;
@@ -18,6 +18,7 @@ export class BuildUtil {
18
18
  const distMainFile = path.join(distDir, 'main.js');
19
19
  const distPkgFile = path.join(distDir, 'package.json');
20
20
  const distPm2File = path.join(distDir, 'pm2.config.js');
21
+ const distNoInstallFile = path.join(distDir, 'no_install.lock');
21
22
  const distBundleFile = path.join(tempDir, `app.${pkgContent.version}.tgz`);
22
23
  await fs.ensureDir(distDir);
23
24
  await fs.ensureDir(tempDir); // 处理 external
@@ -134,17 +135,25 @@ export class BuildUtil {
134
135
  },
135
136
  ],
136
137
  }
137
- `); // 安装 external 依赖
138
-
139
- await exec('tyn', {
140
- cwd: distDir,
141
- stdio: 'inherit',
142
- env: {
143
- // 禁止 yarn 更新检测,因网络原因容易超时长时间卡住
144
- // https://classic.yarnpkg.com/lang/en/docs/yarnrc/#toc-disable-self-update-check
145
- yarn_disable_self_update_check: 'true'
138
+ `);
139
+
140
+ if (externalWithVersions.length) {
141
+ if (options.noInstall) {
142
+ await fs.writeFile(distNoInstallFile, '');
143
+ } else {
144
+ // 安装 external 依赖
145
+ await exec('tyn', {
146
+ cwd: distDir,
147
+ stdio: 'inherit',
148
+ env: {
149
+ // 禁止 yarn 更新检测,因网络原因容易超时长时间卡住
150
+ // https://classic.yarnpkg.com/lang/en/docs/yarnrc/#toc-disable-self-update-check
151
+ yarn_disable_self_update_check: 'true'
152
+ }
153
+ });
146
154
  }
147
- }); // 打包为 tgz
155
+ } // 打包为 tgz
156
+
148
157
 
149
158
  await compressing.tgz.compressDir(distDir, distBundleFile);
150
159
  }
package/lib/cli/cli.js CHANGED
@@ -78,6 +78,11 @@ yargs.command('dev', '开始开发', _ => _.positional('index', {
78
78
  describe: '是否压缩',
79
79
  type: 'boolean',
80
80
  default: true
81
+ }).positional('no-install', {
82
+ alias: 'n',
83
+ describe: '是否不本地安装外部依赖',
84
+ type: 'boolean',
85
+ default: false
81
86
  }), async argv => {
82
87
  process.env.NODE_ENV = 'production';
83
88
  const envs = await EnvUtil.parseFile({
@@ -102,7 +107,8 @@ yargs.command('dev', '开始开发', _ => _.positional('index', {
102
107
  cwd: process.cwd(),
103
108
  external: argv.external,
104
109
  inlineEnvs: envs,
105
- minify: argv.minify
110
+ minify: argv.minify,
111
+ noInstall: argv['no-install']
106
112
  });
107
113
  console.log('构建成功');
108
114
  }).command('api', '生成 API', async () => {
@@ -35,6 +35,7 @@ export class DeployUtil {
35
35
  set -ex
36
36
  tar -zxvf ${remoteAppFile} -C ${appDir}
37
37
  cd ${appDir}/dist
38
+ [ -f no_install.lock ] && yarn_disable_self_update_check=true tyn
38
39
  pm2 startOrReload pm2.config.js
39
40
  `, {
40
41
  cwd: options.cwd,
@@ -72,17 +72,28 @@ export class Handler {
72
72
  const process = async (type, fn) => {
73
73
  if (_.type === type) {
74
74
  let sent = false;
75
- await fn({
76
- data: _.data,
77
- send: (...args) => {
78
- sent = true;
79
- return send(...args);
80
- },
81
- dispose: dispose
82
- });
83
-
84
- if (!sent) {
85
- send();
75
+
76
+ try {
77
+ await fn({
78
+ data: _.data,
79
+ send: data => {
80
+ sent = true;
81
+ return send(data);
82
+ },
83
+ dispose: dispose
84
+ });
85
+
86
+ if (!sent) {
87
+ send();
88
+ }
89
+ } catch (err) {
90
+ const _err = HttpError.isHttpError(err) ? err : new HttpError.InternalServerError();
91
+
92
+ send({
93
+ statusCode: _err.statusCode,
94
+ error: _err.name,
95
+ message: _err.message
96
+ });
86
97
  }
87
98
  }
88
99
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jayfong/x-server",
3
- "version": "1.33.7",
3
+ "version": "1.33.9",
4
4
  "license": "ISC",
5
5
  "sideEffects": false,
6
6
  "main": "lib/_cjs/index.js",