@es-pkg/publish 1.0.9 → 1.0.10
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/cjs/index.js +122 -143
- package/esm/index.js +197 -216
- package/package.json +1 -1
package/cjs/index.js
CHANGED
|
@@ -1,79 +1,60 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
!mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
-
var src_exports = {};
|
|
31
|
-
__export(src_exports, {
|
|
32
|
-
default: () => src_default
|
|
33
|
-
});
|
|
34
|
-
module.exports = __toCommonJS(src_exports);
|
|
35
|
-
var import_gulp = __toESM(require("@es-pkg/gulp"));
|
|
36
|
-
var import_chalk = __toESM(require("chalk"));
|
|
37
|
-
var import_gulp_logger = __toESM(require("@es-pkg/gulp-logger"));
|
|
38
|
-
var import_fs = __toESM(require("fs"));
|
|
39
|
-
var import_path = __toESM(require("path"));
|
|
40
|
-
var import_utils = require("@es-pkg/utils");
|
|
41
|
-
var import_config = require("@es-pkg/config");
|
|
42
|
-
var import_prompts = __toESM(require("prompts"));
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var gulp = require('@es-pkg/gulp');
|
|
6
|
+
var chalk = require('chalk');
|
|
7
|
+
var logger = require('@es-pkg/gulp-logger');
|
|
8
|
+
var fs = require('fs');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
var utils = require('@es-pkg/utils');
|
|
11
|
+
var config = require('@es-pkg/config');
|
|
12
|
+
var prompts = require('prompts');
|
|
13
|
+
|
|
14
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
|
|
16
|
+
var gulp__default = /*#__PURE__*/_interopDefault(gulp);
|
|
17
|
+
var chalk__default = /*#__PURE__*/_interopDefault(chalk);
|
|
18
|
+
var logger__default = /*#__PURE__*/_interopDefault(logger);
|
|
19
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
20
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
21
|
+
var prompts__default = /*#__PURE__*/_interopDefault(prompts);
|
|
22
|
+
|
|
43
23
|
const scoped = /^@[a-zA-Z0-9-]+\/.+$/;
|
|
44
|
-
const REGISTRY =
|
|
45
|
-
const json =
|
|
46
|
-
const publishDir =
|
|
47
|
-
|
|
48
|
-
|
|
24
|
+
const REGISTRY = config.config.publishRegistry;
|
|
25
|
+
const json = config.pkg;
|
|
26
|
+
const publishDir = path__default.default.join(config.config.publishDir, "./__npm__");
|
|
27
|
+
gulp__default.default.task("clean", async () => {
|
|
28
|
+
utils.log(`\u6E05\u9664${publishDir}\u5F00\u59CB`);
|
|
49
29
|
try {
|
|
50
|
-
await
|
|
51
|
-
|
|
30
|
+
await utils.remove(publishDir);
|
|
31
|
+
utils.log(`\u6E05\u9664${publishDir}\u5B8C\u6210`);
|
|
52
32
|
} catch (e) {
|
|
53
|
-
|
|
33
|
+
utils.log(`\u6E05\u9664${publishDir}\u5931\u8D25\uFF1A`, e);
|
|
54
34
|
}
|
|
55
35
|
});
|
|
56
|
-
|
|
57
|
-
if (
|
|
58
|
-
|
|
59
|
-
await
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
await
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
await
|
|
67
|
-
|
|
36
|
+
gulp__default.default.task("del-cjs-iife-es", async () => {
|
|
37
|
+
if (config.config.iife) {
|
|
38
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.iife)} \u5F00\u59CB`);
|
|
39
|
+
await utils.remove(`${path__default.default.join(`${publishDir}`, config.config.iife)}`);
|
|
40
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.iife)} \u7ED3\u675F`);
|
|
41
|
+
}
|
|
42
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.cjs)} \u5F00\u59CB`);
|
|
43
|
+
await utils.remove(`${path__default.default.join(`${publishDir}`, config.config.cjs)}`);
|
|
44
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.cjs)} \u7ED3\u675F`);
|
|
45
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.es)} \u5F00\u59CB`);
|
|
46
|
+
await utils.remove(`${path__default.default.join(`${publishDir}`, config.config.es)}`);
|
|
47
|
+
utils.log(`\u5220\u9664 ${path__default.default.join(`${publishDir}`, config.config.es)} \u7ED3\u675F`);
|
|
68
48
|
});
|
|
69
|
-
|
|
70
|
-
|
|
49
|
+
gulp__default.default.task("copy-info", gulp.series(async () => {
|
|
50
|
+
var _a;
|
|
51
|
+
utils.log(`\u751F\u6210 package \u5F00\u59CB`);
|
|
71
52
|
let errored = false;
|
|
72
53
|
let version = "";
|
|
73
54
|
try {
|
|
74
|
-
const { stdout } = await
|
|
55
|
+
const { stdout } = await utils.run(`npm`, ["view", config.pkg.name, "version"], {
|
|
75
56
|
stdio: void 0,
|
|
76
|
-
cwd:
|
|
57
|
+
cwd: path__default.default.join(process.cwd(), config.config.publishDir)
|
|
77
58
|
});
|
|
78
59
|
if (stdout) {
|
|
79
60
|
version = stdout;
|
|
@@ -84,20 +65,20 @@ import_gulp.default.task("copy-info", (0, import_gulp.series)(async () => {
|
|
|
84
65
|
controller.abort();
|
|
85
66
|
}, 3e3);
|
|
86
67
|
const start = Date.now();
|
|
87
|
-
const url = `https://img.shields.io/npm/v/${
|
|
88
|
-
const response = await
|
|
68
|
+
const url = `https://img.shields.io/npm/v/${config.pkg.name}`;
|
|
69
|
+
const response = await utils.fetch(url, {
|
|
89
70
|
signal: controller.signal
|
|
90
71
|
}).finally(async () => {
|
|
91
|
-
|
|
72
|
+
utils.log.warn(`\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u82B1\u8D39\u65F6\u95F4:${Date.now() - start}`);
|
|
92
73
|
});
|
|
93
74
|
const htmlString = await response.text();
|
|
94
75
|
const regex = /<title>npm: v([\d.]+)<\/title>/;
|
|
95
|
-
version = htmlString.match(regex)
|
|
76
|
+
version = (_a = htmlString.match(regex)) == null ? void 0 : _a[1];
|
|
96
77
|
clearTimeout(timer);
|
|
97
78
|
}
|
|
98
|
-
|
|
79
|
+
utils.log(`\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u4FE1\u606F tag:`, version);
|
|
99
80
|
if (version) {
|
|
100
|
-
json.version =
|
|
81
|
+
json.version = utils.compare(config.pkg.version, version) <= 0 ? utils.autoUpgrade(version) : config.pkg.version;
|
|
101
82
|
} else {
|
|
102
83
|
errored = true;
|
|
103
84
|
}
|
|
@@ -105,11 +86,11 @@ import_gulp.default.task("copy-info", (0, import_gulp.series)(async () => {
|
|
|
105
86
|
errored = true;
|
|
106
87
|
}
|
|
107
88
|
if (errored) {
|
|
108
|
-
const { version: version2 } = await
|
|
89
|
+
const { version: version2 } = await prompts__default.default({
|
|
109
90
|
type: "text",
|
|
110
91
|
name: "version",
|
|
111
92
|
message: "\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u5931\u8D25\uFF01\u8BF7\u8F93\u5165\u7248\u672C\u53F7",
|
|
112
|
-
initial:
|
|
93
|
+
initial: config.pkg.version
|
|
113
94
|
});
|
|
114
95
|
json.version = version2;
|
|
115
96
|
}
|
|
@@ -121,37 +102,33 @@ import_gulp.default.task("copy-info", (0, import_gulp.series)(async () => {
|
|
|
121
102
|
registry: REGISTRY
|
|
122
103
|
};
|
|
123
104
|
}
|
|
124
|
-
const
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
const
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
if (!moduleExists && CJSExists) {
|
|
144
|
-
json.module = _es || _cjs;
|
|
145
|
-
}
|
|
146
|
-
if (!browserExists && IIFEExists) {
|
|
147
|
-
json.browser = (0, import_config.getEntrypoint)(import_config.config.iife);
|
|
105
|
+
const publishDir2 = config.resolveApp(config.config.publishDir);
|
|
106
|
+
const es = path__default.default.basename(config.config.es);
|
|
107
|
+
const cjs = path__default.default.basename(config.config.cjs);
|
|
108
|
+
const iife = config.config.iife ? path__default.default.basename(config.config.iife) : "";
|
|
109
|
+
const has = {
|
|
110
|
+
es: fs__default.default.existsSync(path__default.default.join(publishDir2, es)),
|
|
111
|
+
cjs: fs__default.default.existsSync(path__default.default.join(publishDir2, cjs)),
|
|
112
|
+
iife: iife && fs__default.default.existsSync(path__default.default.join(publishDir2, iife))
|
|
113
|
+
};
|
|
114
|
+
const entry = (base, sub = config.config.entry) => config.getPublishedEntry(base, sub);
|
|
115
|
+
if (has.es || has.cjs) {
|
|
116
|
+
json.main = entry(config.config.cjs) || entry(config.config.es);
|
|
117
|
+
}
|
|
118
|
+
if (has.es) {
|
|
119
|
+
json.module = entry(config.config.es);
|
|
120
|
+
}
|
|
121
|
+
if (has.iife) {
|
|
122
|
+
json.browser = entry(config.config.iife, "es");
|
|
148
123
|
}
|
|
149
124
|
if (!json.types) {
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
125
|
+
const typeEntry = entry(config.config.es, config.config.typings) || (has.es ? entry(config.config.es) : has.cjs ? entry(config.config.cjs) : "");
|
|
126
|
+
if (typeEntry) {
|
|
127
|
+
const { dir, name, ext } = path__default.default.parse(typeEntry);
|
|
128
|
+
json.types = [".ts", ".tsx"].includes(ext) ? typeEntry : `${dir}/${name}.d.ts`;
|
|
129
|
+
}
|
|
153
130
|
}
|
|
154
|
-
json.files = Array.from(/* @__PURE__ */ new Set([
|
|
131
|
+
json.files = Array.from(/* @__PURE__ */ new Set([has.es && es, has.cjs && cjs, has.iife && iife])).filter(Boolean);
|
|
155
132
|
if (json.dependencies) {
|
|
156
133
|
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
157
134
|
if (value.startsWith("file://") || value.startsWith("workspace:")) {
|
|
@@ -161,95 +138,97 @@ import_gulp.default.task("copy-info", (0, import_gulp.series)(async () => {
|
|
|
161
138
|
}));
|
|
162
139
|
}
|
|
163
140
|
let jsonStr = JSON.stringify(json, null, " ");
|
|
164
|
-
const ex =
|
|
141
|
+
const ex = fs__default.default.existsSync(`${config.config.publishDir}/`);
|
|
165
142
|
if (!ex) {
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
143
|
+
fs__default.default.mkdirSync(`${config.config.publishDir}/`, { recursive: true });
|
|
144
|
+
}
|
|
145
|
+
fs__default.default.writeFileSync(`${config.config.publishDir}/package.json`, jsonStr);
|
|
146
|
+
utils.log(`\u751F\u6210 package\u5B8C\u6210`, chalk__default.default.green(json.version));
|
|
147
|
+
utils.log(`\u751F\u6210 .npmrc \u5F00\u59CB`);
|
|
148
|
+
fs__default.default.writeFileSync(`${config.config.publishDir}/.npmrc`, `registry=${REGISTRY}`);
|
|
149
|
+
utils.log(`\u751F\u6210 .npmrc \u5B8C\u6210`);
|
|
150
|
+
utils.log(`\u62F7\u8D1D README \u5F00\u59CB`);
|
|
174
151
|
}, () => {
|
|
175
|
-
return
|
|
152
|
+
return gulp__default.default.src([`./README.md`]).pipe(logger__default.default({
|
|
176
153
|
before: "copy README...",
|
|
177
154
|
after: "copy README complete!",
|
|
178
155
|
showChange: false
|
|
179
|
-
})).pipe(
|
|
156
|
+
})).pipe(gulp__default.default.dest(`${config.config.publishDir}/`));
|
|
180
157
|
}));
|
|
181
|
-
|
|
182
|
-
if (!
|
|
158
|
+
gulp__default.default.task("copy-iife", (c) => {
|
|
159
|
+
if (!config.config.iife) {
|
|
183
160
|
return c();
|
|
184
161
|
}
|
|
185
|
-
|
|
186
|
-
return
|
|
162
|
+
utils.log(`\u62F7\u8D1D '/iife/**' \u5F00\u59CB`);
|
|
163
|
+
return gulp__default.default.src([`${config.config.iife}/.**`, `${config.config.iife}/**`]).pipe(logger__default.default({
|
|
187
164
|
before: "copy iife...",
|
|
188
165
|
after: "copy iife complete!",
|
|
189
166
|
showChange: false
|
|
190
|
-
})).pipe(
|
|
167
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.iife))));
|
|
191
168
|
});
|
|
192
|
-
|
|
193
|
-
return
|
|
169
|
+
gulp__default.default.task("copy-cjs", () => {
|
|
170
|
+
return gulp__default.default.src([`${config.config.cjs}/.**`, `${config.config.cjs}/**`]).pipe(logger__default.default({
|
|
194
171
|
before: "copy cjs...",
|
|
195
172
|
after: "copy cjs complete!",
|
|
196
173
|
showChange: false
|
|
197
|
-
})).pipe(
|
|
174
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.cjs))));
|
|
198
175
|
});
|
|
199
|
-
|
|
200
|
-
return
|
|
176
|
+
gulp__default.default.task("copy-es", () => {
|
|
177
|
+
return gulp__default.default.src([`${config.config.es}/.**`, `${config.config.es}/**`]).pipe(logger__default.default({
|
|
201
178
|
before: "copy es...",
|
|
202
179
|
after: "copy es complete!",
|
|
203
180
|
showChange: false
|
|
204
|
-
})).pipe(
|
|
181
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.es))));
|
|
205
182
|
});
|
|
206
|
-
|
|
183
|
+
gulp__default.default.task("remove-__npm__", gulp.series(() => {
|
|
207
184
|
let promises = [];
|
|
208
|
-
const includes = [
|
|
185
|
+
const includes = [config.config.es, config.config.cjs, config.config.iife].flatMap((val) => {
|
|
209
186
|
if (!val) {
|
|
210
187
|
return [];
|
|
211
188
|
}
|
|
212
|
-
const some =
|
|
189
|
+
const some = config.getIncludeFiles().some((item) => path__default.default.resolve(val).startsWith(path__default.default.resolve(item.path)));
|
|
213
190
|
return some ? [] : [val];
|
|
214
191
|
});
|
|
215
|
-
promises = includes.map((item) =>
|
|
192
|
+
promises = includes.map((item) => utils.remove(item));
|
|
216
193
|
return Promise.all(promises);
|
|
217
194
|
}, () => {
|
|
218
|
-
return
|
|
195
|
+
return gulp__default.default.src([`${publishDir}/**`, `${publishDir}/.**`]).pipe(logger__default.default({
|
|
219
196
|
before: "copy __npm__...",
|
|
220
197
|
after: "copy __npm__ complete!",
|
|
221
198
|
showChange: false
|
|
222
|
-
})).pipe(
|
|
199
|
+
})).pipe(gulp__default.default.dest(`${config.config.publishDir}/`));
|
|
223
200
|
}, async () => {
|
|
224
|
-
await
|
|
201
|
+
await utils.remove(publishDir);
|
|
225
202
|
}));
|
|
226
|
-
|
|
203
|
+
gulp__default.default.task("npm-publish", async function() {
|
|
227
204
|
let publishAccess = [];
|
|
228
|
-
if (scoped.test(
|
|
205
|
+
if (scoped.test(config.pkg.name)) {
|
|
229
206
|
publishAccess = ["--access", "public"];
|
|
230
207
|
}
|
|
231
|
-
if (
|
|
232
|
-
publishAccess =
|
|
208
|
+
if (config.config.publishAccess) {
|
|
209
|
+
publishAccess = config.config.publishAccess;
|
|
233
210
|
}
|
|
234
211
|
try {
|
|
235
|
-
const { stdout } = await
|
|
236
|
-
|
|
212
|
+
const { stdout } = await utils.run(`npm`, ["whoami", "--registry", REGISTRY], { stdio: void 0 });
|
|
213
|
+
utils.log.warn(`===npm\u767B\u5F55\u4FE1\u606F===>${stdout}`);
|
|
237
214
|
} catch (e) {
|
|
238
|
-
|
|
239
|
-
await
|
|
215
|
+
utils.log.warn(`===npm${REGISTRY}\u672A\u767B\u5F55\uFF01\uFF01\u8BF7\u767B\u5F55`);
|
|
216
|
+
await utils.run(`npm`, ["login", "--registry", REGISTRY]);
|
|
240
217
|
}
|
|
241
|
-
const { confirm } = await
|
|
218
|
+
const { confirm } = await prompts__default.default({
|
|
242
219
|
type: "confirm",
|
|
243
220
|
name: "confirm",
|
|
244
221
|
message: "\u662F\u5426\u53D1\u5E03\uFF1F"
|
|
245
222
|
});
|
|
246
223
|
if (confirm) {
|
|
247
|
-
await
|
|
248
|
-
cwd:
|
|
224
|
+
await utils.run(`npm`, ["publish", ...publishAccess, "--registry", REGISTRY], {
|
|
225
|
+
cwd: path__default.default.join(process.cwd(), config.config.publishDir)
|
|
249
226
|
});
|
|
250
|
-
|
|
227
|
+
utils.success(`${json.name}@${json.version}:\u53D1\u5E03\u6210\u529F\uFF01`);
|
|
251
228
|
} else {
|
|
252
|
-
|
|
229
|
+
utils.error(`${json.name}@${json.version}:\u53D6\u6D88\u6210\u529F\uFF01`);
|
|
253
230
|
}
|
|
254
231
|
});
|
|
255
|
-
var src_default =
|
|
232
|
+
var src_default = gulp__default.default.series("clean", "del-cjs-iife-es", "copy-cjs", "copy-es", "copy-iife", "remove-__npm__", "copy-info", "npm-publish");
|
|
233
|
+
|
|
234
|
+
exports.default = src_default;
|
package/esm/index.js
CHANGED
|
@@ -4,237 +4,218 @@ import logger from '@es-pkg/gulp-logger';
|
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import { log, remove, run, fetch, autoUpgrade, compare, success, error } from '@es-pkg/utils';
|
|
7
|
-
import { config, pkg, resolveApp,
|
|
7
|
+
import { config, pkg, resolveApp, getPublishedEntry, getIncludeFiles } from '@es-pkg/config';
|
|
8
8
|
import prompts from 'prompts';
|
|
9
9
|
|
|
10
10
|
const scoped = /^@[a-zA-Z0-9-]+\/.+$/;
|
|
11
11
|
const REGISTRY = config.publishRegistry;
|
|
12
12
|
const json = pkg;
|
|
13
|
-
const publishDir = path.join(config.publishDir,
|
|
14
|
-
gulp.task(
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
13
|
+
const publishDir = path.join(config.publishDir, "./__npm__");
|
|
14
|
+
gulp.task("clean", async () => {
|
|
15
|
+
log(`\u6E05\u9664${publishDir}\u5F00\u59CB`);
|
|
16
|
+
try {
|
|
17
|
+
await remove(publishDir);
|
|
18
|
+
log(`\u6E05\u9664${publishDir}\u5B8C\u6210`);
|
|
19
|
+
} catch (e) {
|
|
20
|
+
log(`\u6E05\u9664${publishDir}\u5931\u8D25\uFF1A`, e);
|
|
21
|
+
}
|
|
23
22
|
});
|
|
24
|
-
gulp.task(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
gulp.task("del-cjs-iife-es", async () => {
|
|
24
|
+
if (config.iife) {
|
|
25
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.iife)} \u5F00\u59CB`);
|
|
26
|
+
await remove(`${path.join(`${publishDir}`, config.iife)}`);
|
|
27
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.iife)} \u7ED3\u675F`);
|
|
28
|
+
}
|
|
29
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.cjs)} \u5F00\u59CB`);
|
|
30
|
+
await remove(`${path.join(`${publishDir}`, config.cjs)}`);
|
|
31
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.cjs)} \u7ED3\u675F`);
|
|
32
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.es)} \u5F00\u59CB`);
|
|
33
|
+
await remove(`${path.join(`${publishDir}`, config.es)}`);
|
|
34
|
+
log(`\u5220\u9664 ${path.join(`${publishDir}`, config.es)} \u7ED3\u675F`);
|
|
36
35
|
});
|
|
37
|
-
gulp.task(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
log(`生成 package完成`, chalk.green(json.version));
|
|
140
|
-
log(`生成 .npmrc 开始`);
|
|
141
|
-
fs.writeFileSync(`${config.publishDir}/.npmrc`, `registry=${REGISTRY}`);
|
|
142
|
-
log(`生成 .npmrc 完成`);
|
|
143
|
-
log(`拷贝 README 开始`);
|
|
36
|
+
gulp.task("copy-info", series(async () => {
|
|
37
|
+
var _a;
|
|
38
|
+
log(`\u751F\u6210 package \u5F00\u59CB`);
|
|
39
|
+
let errored = false;
|
|
40
|
+
let version = "";
|
|
41
|
+
try {
|
|
42
|
+
const { stdout } = await run(`npm`, ["view", pkg.name, "version"], {
|
|
43
|
+
stdio: void 0,
|
|
44
|
+
cwd: path.join(process.cwd(), config.publishDir)
|
|
45
|
+
});
|
|
46
|
+
if (stdout) {
|
|
47
|
+
version = stdout;
|
|
48
|
+
}
|
|
49
|
+
if (!version) {
|
|
50
|
+
const controller = new AbortController();
|
|
51
|
+
const timer = setTimeout(() => {
|
|
52
|
+
controller.abort();
|
|
53
|
+
}, 3e3);
|
|
54
|
+
const start = Date.now();
|
|
55
|
+
const url = `https://img.shields.io/npm/v/${pkg.name}`;
|
|
56
|
+
const response = await fetch(url, {
|
|
57
|
+
signal: controller.signal
|
|
58
|
+
}).finally(async () => {
|
|
59
|
+
log.warn(`\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u82B1\u8D39\u65F6\u95F4:${Date.now() - start}`);
|
|
60
|
+
});
|
|
61
|
+
const htmlString = await response.text();
|
|
62
|
+
const regex = /<title>npm: v([\d.]+)<\/title>/;
|
|
63
|
+
version = (_a = htmlString.match(regex)) == null ? void 0 : _a[1];
|
|
64
|
+
clearTimeout(timer);
|
|
65
|
+
}
|
|
66
|
+
log(`\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u4FE1\u606F tag:`, version);
|
|
67
|
+
if (version) {
|
|
68
|
+
json.version = compare(pkg.version, version) <= 0 ? autoUpgrade(version) : pkg.version;
|
|
69
|
+
} else {
|
|
70
|
+
errored = true;
|
|
71
|
+
}
|
|
72
|
+
} catch (e) {
|
|
73
|
+
errored = true;
|
|
74
|
+
}
|
|
75
|
+
if (errored) {
|
|
76
|
+
const { version: version2 } = await prompts({
|
|
77
|
+
type: "text",
|
|
78
|
+
name: "version",
|
|
79
|
+
message: "\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u5931\u8D25\uFF01\u8BF7\u8F93\u5165\u7248\u672C\u53F7",
|
|
80
|
+
initial: pkg.version
|
|
81
|
+
});
|
|
82
|
+
json.version = version2;
|
|
83
|
+
}
|
|
84
|
+
delete json.devDependencies;
|
|
85
|
+
delete json.scripts;
|
|
86
|
+
if (!json.publishConfig) {
|
|
87
|
+
json.publishConfig = {
|
|
88
|
+
access: "public",
|
|
89
|
+
registry: REGISTRY
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
const publishDir2 = resolveApp(config.publishDir);
|
|
93
|
+
const es = path.basename(config.es);
|
|
94
|
+
const cjs = path.basename(config.cjs);
|
|
95
|
+
const iife = config.iife ? path.basename(config.iife) : "";
|
|
96
|
+
const has = {
|
|
97
|
+
es: fs.existsSync(path.join(publishDir2, es)),
|
|
98
|
+
cjs: fs.existsSync(path.join(publishDir2, cjs)),
|
|
99
|
+
iife: iife && fs.existsSync(path.join(publishDir2, iife))
|
|
100
|
+
};
|
|
101
|
+
const entry = (base, sub = config.entry) => getPublishedEntry(base, sub);
|
|
102
|
+
if (has.es || has.cjs) {
|
|
103
|
+
json.main = entry(config.cjs) || entry(config.es);
|
|
104
|
+
}
|
|
105
|
+
if (has.es) {
|
|
106
|
+
json.module = entry(config.es);
|
|
107
|
+
}
|
|
108
|
+
if (has.iife) {
|
|
109
|
+
json.browser = entry(config.iife, "es");
|
|
110
|
+
}
|
|
111
|
+
if (!json.types) {
|
|
112
|
+
const typeEntry = entry(config.es, config.typings) || (has.es ? entry(config.es) : has.cjs ? entry(config.cjs) : "");
|
|
113
|
+
if (typeEntry) {
|
|
114
|
+
const { dir, name, ext } = path.parse(typeEntry);
|
|
115
|
+
json.types = [".ts", ".tsx"].includes(ext) ? typeEntry : `${dir}/${name}.d.ts`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
json.files = Array.from(/* @__PURE__ */ new Set([has.es && es, has.cjs && cjs, has.iife && iife])).filter(Boolean);
|
|
119
|
+
if (json.dependencies) {
|
|
120
|
+
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
121
|
+
if (value.startsWith("file://") || value.startsWith("workspace:")) {
|
|
122
|
+
return [key, "latest"];
|
|
123
|
+
}
|
|
124
|
+
return [key, value];
|
|
125
|
+
}));
|
|
126
|
+
}
|
|
127
|
+
let jsonStr = JSON.stringify(json, null, " ");
|
|
128
|
+
const ex = fs.existsSync(`${config.publishDir}/`);
|
|
129
|
+
if (!ex) {
|
|
130
|
+
fs.mkdirSync(`${config.publishDir}/`, { recursive: true });
|
|
131
|
+
}
|
|
132
|
+
fs.writeFileSync(`${config.publishDir}/package.json`, jsonStr);
|
|
133
|
+
log(`\u751F\u6210 package\u5B8C\u6210`, chalk.green(json.version));
|
|
134
|
+
log(`\u751F\u6210 .npmrc \u5F00\u59CB`);
|
|
135
|
+
fs.writeFileSync(`${config.publishDir}/.npmrc`, `registry=${REGISTRY}`);
|
|
136
|
+
log(`\u751F\u6210 .npmrc \u5B8C\u6210`);
|
|
137
|
+
log(`\u62F7\u8D1D README \u5F00\u59CB`);
|
|
144
138
|
}, () => {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}))
|
|
151
|
-
.pipe(gulp.dest(`${config.publishDir}/`));
|
|
139
|
+
return gulp.src([`./README.md`]).pipe(logger({
|
|
140
|
+
before: "copy README...",
|
|
141
|
+
after: "copy README complete!",
|
|
142
|
+
showChange: false
|
|
143
|
+
})).pipe(gulp.dest(`${config.publishDir}/`));
|
|
152
144
|
}));
|
|
153
|
-
gulp.task(
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
}))
|
|
164
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.iife))));
|
|
145
|
+
gulp.task("copy-iife", (c) => {
|
|
146
|
+
if (!config.iife) {
|
|
147
|
+
return c();
|
|
148
|
+
}
|
|
149
|
+
log(`\u62F7\u8D1D '/iife/**' \u5F00\u59CB`);
|
|
150
|
+
return gulp.src([`${config.iife}/.**`, `${config.iife}/**`]).pipe(logger({
|
|
151
|
+
before: "copy iife...",
|
|
152
|
+
after: "copy iife complete!",
|
|
153
|
+
showChange: false
|
|
154
|
+
})).pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.iife))));
|
|
165
155
|
});
|
|
166
|
-
gulp.task(
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}))
|
|
173
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.cjs))));
|
|
156
|
+
gulp.task("copy-cjs", () => {
|
|
157
|
+
return gulp.src([`${config.cjs}/.**`, `${config.cjs}/**`]).pipe(logger({
|
|
158
|
+
before: "copy cjs...",
|
|
159
|
+
after: "copy cjs complete!",
|
|
160
|
+
showChange: false
|
|
161
|
+
})).pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.cjs))));
|
|
174
162
|
});
|
|
175
|
-
gulp.task(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
}))
|
|
182
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.es))));
|
|
163
|
+
gulp.task("copy-es", () => {
|
|
164
|
+
return gulp.src([`${config.es}/.**`, `${config.es}/**`]).pipe(logger({
|
|
165
|
+
before: "copy es...",
|
|
166
|
+
after: "copy es complete!",
|
|
167
|
+
showChange: false
|
|
168
|
+
})).pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.es))));
|
|
183
169
|
});
|
|
184
|
-
gulp.task(
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
170
|
+
gulp.task("remove-__npm__", series(() => {
|
|
171
|
+
let promises = [];
|
|
172
|
+
const includes = [config.es, config.cjs, config.iife].flatMap((val) => {
|
|
173
|
+
if (!val) {
|
|
174
|
+
return [];
|
|
175
|
+
}
|
|
176
|
+
const some = getIncludeFiles().some((item) => path.resolve(val).startsWith(path.resolve(item.path)));
|
|
177
|
+
return some ? [] : [val];
|
|
178
|
+
});
|
|
179
|
+
promises = includes.map((item) => remove(item));
|
|
180
|
+
return Promise.all(promises);
|
|
195
181
|
}, () => {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
}))
|
|
202
|
-
.pipe(gulp.dest(`${config.publishDir}/`));
|
|
182
|
+
return gulp.src([`${publishDir}/**`, `${publishDir}/.**`]).pipe(logger({
|
|
183
|
+
before: "copy __npm__...",
|
|
184
|
+
after: "copy __npm__ complete!",
|
|
185
|
+
showChange: false
|
|
186
|
+
})).pipe(gulp.dest(`${config.publishDir}/`));
|
|
203
187
|
}, async () => {
|
|
204
|
-
|
|
188
|
+
await remove(publishDir);
|
|
205
189
|
}));
|
|
206
|
-
gulp.task(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
190
|
+
gulp.task("npm-publish", async function() {
|
|
191
|
+
let publishAccess = [];
|
|
192
|
+
if (scoped.test(pkg.name)) {
|
|
193
|
+
publishAccess = ["--access", "public"];
|
|
194
|
+
}
|
|
195
|
+
if (config.publishAccess) {
|
|
196
|
+
publishAccess = config.publishAccess;
|
|
197
|
+
}
|
|
198
|
+
try {
|
|
199
|
+
const { stdout } = await run(`npm`, ["whoami", "--registry", REGISTRY], { stdio: void 0 });
|
|
200
|
+
log.warn(`===npm\u767B\u5F55\u4FE1\u606F===>${stdout}`);
|
|
201
|
+
} catch (e) {
|
|
202
|
+
log.warn(`===npm${REGISTRY}\u672A\u767B\u5F55\uFF01\uFF01\u8BF7\u767B\u5F55`);
|
|
203
|
+
await run(`npm`, ["login", "--registry", REGISTRY]);
|
|
204
|
+
}
|
|
205
|
+
const { confirm } = await prompts({
|
|
206
|
+
type: "confirm",
|
|
207
|
+
name: "confirm",
|
|
208
|
+
message: "\u662F\u5426\u53D1\u5E03\uFF1F"
|
|
209
|
+
});
|
|
210
|
+
if (confirm) {
|
|
211
|
+
await run(`npm`, ["publish", ...publishAccess, "--registry", REGISTRY], {
|
|
212
|
+
cwd: path.join(process.cwd(), config.publishDir)
|
|
227
213
|
});
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
success(`${json.name}@${json.version}:发布成功!`);
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
error(`${json.name}@${json.version}:取消成功!`);
|
|
236
|
-
}
|
|
214
|
+
success(`${json.name}@${json.version}:\u53D1\u5E03\u6210\u529F\uFF01`);
|
|
215
|
+
} else {
|
|
216
|
+
error(`${json.name}@${json.version}:\u53D6\u6D88\u6210\u529F\uFF01`);
|
|
217
|
+
}
|
|
237
218
|
});
|
|
238
|
-
var
|
|
219
|
+
var src_default = gulp.series("clean", "del-cjs-iife-es", "copy-cjs", "copy-es", "copy-iife", "remove-__npm__", "copy-info", "npm-publish");
|
|
239
220
|
|
|
240
|
-
export {
|
|
221
|
+
export { src_default as default };
|