@es-pkg/publish 1.0.8 → 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 +130 -149
- package/esm/index.js +195 -212
- 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,133 +102,133 @@ 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
|
-
|
|
153
|
-
|
|
154
|
-
json.files = Array.from(/* @__PURE__ */ new Set([ESExists && es, CJSExists && cjs, IIFEExists && iife])).filter(Boolean);
|
|
155
|
-
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
156
|
-
if (value.startsWith("file://") || value.startsWith("workspace:")) {
|
|
157
|
-
return [key, "latest"];
|
|
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`;
|
|
158
129
|
}
|
|
159
|
-
|
|
160
|
-
|
|
130
|
+
}
|
|
131
|
+
json.files = Array.from(/* @__PURE__ */ new Set([has.es && es, has.cjs && cjs, has.iife && iife])).filter(Boolean);
|
|
132
|
+
if (json.dependencies) {
|
|
133
|
+
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
134
|
+
if (value.startsWith("file://") || value.startsWith("workspace:")) {
|
|
135
|
+
return [key, "latest"];
|
|
136
|
+
}
|
|
137
|
+
return [key, value];
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
161
140
|
let jsonStr = JSON.stringify(json, null, " ");
|
|
162
|
-
const ex =
|
|
141
|
+
const ex = fs__default.default.existsSync(`${config.config.publishDir}/`);
|
|
163
142
|
if (!ex) {
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
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`);
|
|
172
151
|
}, () => {
|
|
173
|
-
return
|
|
152
|
+
return gulp__default.default.src([`./README.md`]).pipe(logger__default.default({
|
|
174
153
|
before: "copy README...",
|
|
175
154
|
after: "copy README complete!",
|
|
176
155
|
showChange: false
|
|
177
|
-
})).pipe(
|
|
156
|
+
})).pipe(gulp__default.default.dest(`${config.config.publishDir}/`));
|
|
178
157
|
}));
|
|
179
|
-
|
|
180
|
-
if (!
|
|
158
|
+
gulp__default.default.task("copy-iife", (c) => {
|
|
159
|
+
if (!config.config.iife) {
|
|
181
160
|
return c();
|
|
182
161
|
}
|
|
183
|
-
|
|
184
|
-
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({
|
|
185
164
|
before: "copy iife...",
|
|
186
165
|
after: "copy iife complete!",
|
|
187
166
|
showChange: false
|
|
188
|
-
})).pipe(
|
|
167
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.iife))));
|
|
189
168
|
});
|
|
190
|
-
|
|
191
|
-
return
|
|
169
|
+
gulp__default.default.task("copy-cjs", () => {
|
|
170
|
+
return gulp__default.default.src([`${config.config.cjs}/.**`, `${config.config.cjs}/**`]).pipe(logger__default.default({
|
|
192
171
|
before: "copy cjs...",
|
|
193
172
|
after: "copy cjs complete!",
|
|
194
173
|
showChange: false
|
|
195
|
-
})).pipe(
|
|
174
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.cjs))));
|
|
196
175
|
});
|
|
197
|
-
|
|
198
|
-
return
|
|
176
|
+
gulp__default.default.task("copy-es", () => {
|
|
177
|
+
return gulp__default.default.src([`${config.config.es}/.**`, `${config.config.es}/**`]).pipe(logger__default.default({
|
|
199
178
|
before: "copy es...",
|
|
200
179
|
after: "copy es complete!",
|
|
201
180
|
showChange: false
|
|
202
|
-
})).pipe(
|
|
181
|
+
})).pipe(gulp__default.default.dest(path__default.default.join(`${publishDir}`, path__default.default.basename(config.config.es))));
|
|
203
182
|
});
|
|
204
|
-
|
|
183
|
+
gulp__default.default.task("remove-__npm__", gulp.series(() => {
|
|
205
184
|
let promises = [];
|
|
206
|
-
const includes = [
|
|
185
|
+
const includes = [config.config.es, config.config.cjs, config.config.iife].flatMap((val) => {
|
|
207
186
|
if (!val) {
|
|
208
187
|
return [];
|
|
209
188
|
}
|
|
210
|
-
const some =
|
|
189
|
+
const some = config.getIncludeFiles().some((item) => path__default.default.resolve(val).startsWith(path__default.default.resolve(item.path)));
|
|
211
190
|
return some ? [] : [val];
|
|
212
191
|
});
|
|
213
|
-
promises = includes.map((item) =>
|
|
192
|
+
promises = includes.map((item) => utils.remove(item));
|
|
214
193
|
return Promise.all(promises);
|
|
215
194
|
}, () => {
|
|
216
|
-
return
|
|
195
|
+
return gulp__default.default.src([`${publishDir}/**`, `${publishDir}/.**`]).pipe(logger__default.default({
|
|
217
196
|
before: "copy __npm__...",
|
|
218
197
|
after: "copy __npm__ complete!",
|
|
219
198
|
showChange: false
|
|
220
|
-
})).pipe(
|
|
199
|
+
})).pipe(gulp__default.default.dest(`${config.config.publishDir}/`));
|
|
221
200
|
}, async () => {
|
|
222
|
-
await
|
|
201
|
+
await utils.remove(publishDir);
|
|
223
202
|
}));
|
|
224
|
-
|
|
203
|
+
gulp__default.default.task("npm-publish", async function() {
|
|
225
204
|
let publishAccess = [];
|
|
226
|
-
if (scoped.test(
|
|
205
|
+
if (scoped.test(config.pkg.name)) {
|
|
227
206
|
publishAccess = ["--access", "public"];
|
|
228
207
|
}
|
|
229
|
-
if (
|
|
230
|
-
publishAccess =
|
|
208
|
+
if (config.config.publishAccess) {
|
|
209
|
+
publishAccess = config.config.publishAccess;
|
|
231
210
|
}
|
|
232
211
|
try {
|
|
233
|
-
const { stdout } = await
|
|
234
|
-
|
|
212
|
+
const { stdout } = await utils.run(`npm`, ["whoami", "--registry", REGISTRY], { stdio: void 0 });
|
|
213
|
+
utils.log.warn(`===npm\u767B\u5F55\u4FE1\u606F===>${stdout}`);
|
|
235
214
|
} catch (e) {
|
|
236
|
-
|
|
237
|
-
await
|
|
215
|
+
utils.log.warn(`===npm${REGISTRY}\u672A\u767B\u5F55\uFF01\uFF01\u8BF7\u767B\u5F55`);
|
|
216
|
+
await utils.run(`npm`, ["login", "--registry", REGISTRY]);
|
|
238
217
|
}
|
|
239
|
-
const { confirm } = await
|
|
218
|
+
const { confirm } = await prompts__default.default({
|
|
240
219
|
type: "confirm",
|
|
241
220
|
name: "confirm",
|
|
242
221
|
message: "\u662F\u5426\u53D1\u5E03\uFF1F"
|
|
243
222
|
});
|
|
244
223
|
if (confirm) {
|
|
245
|
-
await
|
|
246
|
-
cwd:
|
|
224
|
+
await utils.run(`npm`, ["publish", ...publishAccess, "--registry", REGISTRY], {
|
|
225
|
+
cwd: path__default.default.join(process.cwd(), config.config.publishDir)
|
|
247
226
|
});
|
|
248
|
-
|
|
227
|
+
utils.success(`${json.name}@${json.version}:\u53D1\u5E03\u6210\u529F\uFF01`);
|
|
249
228
|
} else {
|
|
250
|
-
|
|
229
|
+
utils.error(`${json.name}@${json.version}:\u53D6\u6D88\u6210\u529F\uFF01`);
|
|
251
230
|
}
|
|
252
231
|
});
|
|
253
|
-
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,235 +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
|
-
const { dir, name, ext } = path.parse(type);
|
|
122
|
-
json.types = ['.ts', '.tsx'].includes(ext) ? type : `${dir}/${name}.d.ts`;
|
|
123
|
-
}
|
|
124
|
-
json.files = Array.from(new Set([ESExists && es, CJSExists && cjs, IIFEExists && iife])).filter(Boolean);
|
|
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) {
|
|
125
120
|
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
if (value.startsWith("file://") || value.startsWith("workspace:")) {
|
|
122
|
+
return [key, "latest"];
|
|
123
|
+
}
|
|
124
|
+
return [key, value];
|
|
130
125
|
}));
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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`);
|
|
142
138
|
}, () => {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}))
|
|
149
|
-
.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}/`));
|
|
150
144
|
}));
|
|
151
|
-
gulp.task(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}))
|
|
162
|
-
.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))));
|
|
163
155
|
});
|
|
164
|
-
gulp.task(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}))
|
|
171
|
-
.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))));
|
|
172
162
|
});
|
|
173
|
-
gulp.task(
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}))
|
|
180
|
-
.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))));
|
|
181
169
|
});
|
|
182
|
-
gulp.task(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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);
|
|
193
181
|
}, () => {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}))
|
|
200
|
-
.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}/`));
|
|
201
187
|
}, async () => {
|
|
202
|
-
|
|
188
|
+
await remove(publishDir);
|
|
203
189
|
}));
|
|
204
|
-
gulp.task(
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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)
|
|
225
213
|
});
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
success(`${json.name}@${json.version}:发布成功!`);
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
error(`${json.name}@${json.version}:取消成功!`);
|
|
234
|
-
}
|
|
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
|
+
}
|
|
235
218
|
});
|
|
236
|
-
var
|
|
219
|
+
var src_default = gulp.series("clean", "del-cjs-iife-es", "copy-cjs", "copy-es", "copy-iife", "remove-__npm__", "copy-info", "npm-publish");
|
|
237
220
|
|
|
238
|
-
export {
|
|
221
|
+
export { src_default as default };
|