@es-pkg/publish 1.0.2 → 1.0.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 +4 -6
- package/src/index.ts +234 -0
- package/src/type.d.ts +46 -0
- package/cjs/index.d.ts +0 -3
- package/cjs/index.js +0 -314
- package/esm/index.d.ts +0 -3
- package/esm/index.js +0 -214
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@es-pkg/publish",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "组件打包工具",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "src/index.ts",
|
|
6
6
|
"engines": {
|
|
7
7
|
"node": ">=14.6.0"
|
|
8
8
|
},
|
|
@@ -29,10 +29,8 @@
|
|
|
29
29
|
"access": "public",
|
|
30
30
|
"registry": "https://registry.npmjs.org"
|
|
31
31
|
},
|
|
32
|
-
"
|
|
33
|
-
"types": "esm/index.js",
|
|
32
|
+
"types": "src/index.ts",
|
|
34
33
|
"files": [
|
|
35
|
-
"
|
|
36
|
-
"cjs"
|
|
34
|
+
"src"
|
|
37
35
|
]
|
|
38
36
|
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import gulp, {series} from '@es-pkg/gulp'
|
|
2
|
+
import chalk from 'chalk';// 改变屏幕文字颜色
|
|
3
|
+
import logger from '@es-pkg/gulp-logger'
|
|
4
|
+
import fs from "fs"
|
|
5
|
+
import path from "path";
|
|
6
|
+
import {autoUpgrade, compare, remove, run, error, log, success, fetch } from "@es-pkg/utils";
|
|
7
|
+
import {config, getEntrypoint, getIncludeFiles, pkg, resolveApp} from "@es-pkg/config";
|
|
8
|
+
import prompts from "prompts"
|
|
9
|
+
|
|
10
|
+
const scoped = /^@[a-zA-Z0-9-]+\/.+$/;
|
|
11
|
+
const REGISTRY = "https://registry.npmjs.org"
|
|
12
|
+
|
|
13
|
+
const json: Record<string, string | object> = pkg;
|
|
14
|
+
|
|
15
|
+
const publishDir = path.join(config.publishDir, './__npm__')
|
|
16
|
+
|
|
17
|
+
gulp.task('clean', async () => {
|
|
18
|
+
log(`清除${publishDir}开始`)
|
|
19
|
+
try {
|
|
20
|
+
await remove(publishDir);
|
|
21
|
+
log(`清除${publishDir}完成`)
|
|
22
|
+
} catch (e) {
|
|
23
|
+
log(`清除${publishDir}失败:`, e)
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
gulp.task('del-cjs-iife-es', async () => {
|
|
27
|
+
log(`删除 ${path.join(`${publishDir}`, config.iife)} 开始`)
|
|
28
|
+
await remove(`${path.join(`${publishDir}`, config.iife)}`);
|
|
29
|
+
log(`删除 ${path.join(`${publishDir}`, config.iife)} 结束`)
|
|
30
|
+
|
|
31
|
+
log(`删除 ${path.join(`${publishDir}`, config.cjs)} 开始`)
|
|
32
|
+
await remove(`${path.join(`${publishDir}`, config.cjs)}`);
|
|
33
|
+
log(`删除 ${path.join(`${publishDir}`, config.cjs)} 结束`)
|
|
34
|
+
|
|
35
|
+
log(`删除 ${path.join(`${publishDir}`, config.es)} 开始`)
|
|
36
|
+
await remove(`${path.join(`${publishDir}`, config.es)}`);
|
|
37
|
+
log(`删除 ${path.join(`${publishDir}`, config.es)} 结束`)
|
|
38
|
+
});
|
|
39
|
+
gulp.task('copy-info', series(async () => {
|
|
40
|
+
log(`生成 package 开始`);
|
|
41
|
+
const controller = new AbortController();
|
|
42
|
+
//const {default: fetch} = await import("node-fetch");
|
|
43
|
+
let errored = false;
|
|
44
|
+
try {
|
|
45
|
+
const timer = setTimeout(() => {
|
|
46
|
+
controller.abort()
|
|
47
|
+
}, 3000)
|
|
48
|
+
const start= Date.now();
|
|
49
|
+
const url=`https://unpkg.com/${pkg.name}`
|
|
50
|
+
|
|
51
|
+
const response = await fetch(url, {
|
|
52
|
+
signal: controller.signal
|
|
53
|
+
}).finally(()=>{
|
|
54
|
+
log.warn(`远程获取版本花费时间:${Date.now() - start}`)
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const regex = /@([0-9A-Za-z.-]+)/;
|
|
58
|
+
const version = (response?.url.split(url)[1]).match(regex)?.[1];
|
|
59
|
+
clearTimeout(timer);
|
|
60
|
+
log(`远程获取版本信息 tag:`, version)
|
|
61
|
+
if (version) {
|
|
62
|
+
json.version = compare(pkg.version, version) <= 0 ? autoUpgrade(version) : pkg.version
|
|
63
|
+
} else {
|
|
64
|
+
errored = true;
|
|
65
|
+
}
|
|
66
|
+
} catch (e) {
|
|
67
|
+
//console.log(e)
|
|
68
|
+
errored = true;
|
|
69
|
+
}
|
|
70
|
+
if (errored) {
|
|
71
|
+
const {version} = await prompts({
|
|
72
|
+
type: 'text',
|
|
73
|
+
name: 'version',
|
|
74
|
+
message: '远程获取版本失败!请输入版本号',
|
|
75
|
+
initial: pkg.version
|
|
76
|
+
});
|
|
77
|
+
json.version = version;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
delete json.devDependencies;
|
|
81
|
+
delete json.scripts;
|
|
82
|
+
if (!json.publishConfig) {
|
|
83
|
+
json.publishConfig = {
|
|
84
|
+
access: "public",
|
|
85
|
+
registry: REGISTRY
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const es = path.basename(config.es);
|
|
89
|
+
const cjs = path.basename(config.cjs);
|
|
90
|
+
const iife = path.basename(config.iife);
|
|
91
|
+
const CJSExists = fs.existsSync(path.join(`${config.publishDir}`, cjs))
|
|
92
|
+
const ESExists = fs.existsSync(path.join(`${config.publishDir}`, es))
|
|
93
|
+
const IIFEExists = fs.existsSync(path.join(`${config.publishDir}`, iife))
|
|
94
|
+
const mainExists = !!json.main && fs.existsSync(path.join(resolveApp(''), json.main as string))
|
|
95
|
+
const browserExists = !!json.browser && fs.existsSync(path.join(resolveApp(''), json.main as string))
|
|
96
|
+
const moduleExists = !!json.module && fs.existsSync(path.join(resolveApp(''), json.main as string))
|
|
97
|
+
|
|
98
|
+
const _es = getEntrypoint(config.es);
|
|
99
|
+
|
|
100
|
+
const _cjs = getEntrypoint(config.cjs)
|
|
101
|
+
if (!mainExists) {
|
|
102
|
+
if (ESExists) {
|
|
103
|
+
json.main = _es || _cjs
|
|
104
|
+
}
|
|
105
|
+
if (CJSExists) {
|
|
106
|
+
json.main = _cjs || _es;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (!moduleExists && CJSExists) {
|
|
110
|
+
json.module = _es || _cjs
|
|
111
|
+
}
|
|
112
|
+
if (!browserExists && IIFEExists) {
|
|
113
|
+
json.browser = getEntrypoint(config.iife)
|
|
114
|
+
}
|
|
115
|
+
if (!json.types) {
|
|
116
|
+
const type = getEntrypoint(config.es, config.typings) || _es || _cjs;
|
|
117
|
+
const {dir, name, ext} = path.parse(type);
|
|
118
|
+
json.types = ['.ts', '.tsx'].includes(ext) ? type : `${dir}/${name}.d.ts`
|
|
119
|
+
}
|
|
120
|
+
json.files = Array.from(new Set([ESExists && es, CJSExists && cjs, IIFEExists && iife])).filter(Boolean)
|
|
121
|
+
|
|
122
|
+
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
123
|
+
if (value.startsWith('file://') || value.startsWith('workspace:')) {
|
|
124
|
+
return [key, 'latest']
|
|
125
|
+
}
|
|
126
|
+
return [key, value]
|
|
127
|
+
}))
|
|
128
|
+
|
|
129
|
+
let jsonStr = JSON.stringify(json, null, "\t")
|
|
130
|
+
const ex = fs.existsSync(`${config.publishDir}/`)
|
|
131
|
+
if (!ex) {
|
|
132
|
+
fs.mkdirSync(`${config.publishDir}/`, {recursive: true})
|
|
133
|
+
}
|
|
134
|
+
fs.writeFileSync(`${config.publishDir}/package.json`, jsonStr)
|
|
135
|
+
log(`生成 package完成`, chalk.green(json.version))
|
|
136
|
+
|
|
137
|
+
log(`生成 .npmrc 开始`)
|
|
138
|
+
fs.writeFileSync(`${config.publishDir}/.npmrc`, `registry=${REGISTRY}`)
|
|
139
|
+
log(`生成 .npmrc 完成`)
|
|
140
|
+
|
|
141
|
+
log(`拷贝 README 开始`)
|
|
142
|
+
}, () => {
|
|
143
|
+
return gulp.src([`./README.md`])
|
|
144
|
+
.pipe(logger({
|
|
145
|
+
before: 'copy README...',
|
|
146
|
+
after: 'copy README complete!',
|
|
147
|
+
showChange: false
|
|
148
|
+
}))
|
|
149
|
+
.pipe(gulp.dest(`${config.publishDir}/`))
|
|
150
|
+
}));
|
|
151
|
+
|
|
152
|
+
gulp.task('copy-iife', () => {
|
|
153
|
+
log(`拷贝 '/iife/**' 开始`)
|
|
154
|
+
return gulp.src([`${config.iife}/.**`, `${config.iife}/**`])
|
|
155
|
+
.pipe(logger({
|
|
156
|
+
before: 'copy iife...',
|
|
157
|
+
after: 'copy iife complete!',
|
|
158
|
+
showChange: false
|
|
159
|
+
}))
|
|
160
|
+
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.iife))));
|
|
161
|
+
});
|
|
162
|
+
gulp.task('copy-cjs', () => {
|
|
163
|
+
return gulp.src([`${config.cjs}/.**`, `${config.cjs}/**`])
|
|
164
|
+
.pipe(logger({
|
|
165
|
+
before: 'copy cjs...',
|
|
166
|
+
after: 'copy cjs complete!',
|
|
167
|
+
showChange: false
|
|
168
|
+
}))
|
|
169
|
+
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.cjs))));
|
|
170
|
+
});
|
|
171
|
+
gulp.task('copy-es', () => {
|
|
172
|
+
return gulp.src([`${config.es}/.**`, `${config.es}/**`])
|
|
173
|
+
.pipe(logger({
|
|
174
|
+
before: 'copy es...',
|
|
175
|
+
after: 'copy es complete!',
|
|
176
|
+
showChange: false
|
|
177
|
+
}))
|
|
178
|
+
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.es))));
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
gulp.task('remove-__npm__', series(() => {
|
|
182
|
+
let promises: Promise<void>[] = [];
|
|
183
|
+
const includes = [config.es, config.cjs, config.iife].flatMap(val => {
|
|
184
|
+
const some = getIncludeFiles().some(item => path.resolve(val).startsWith(path.resolve(item.path)))
|
|
185
|
+
return some ? [] : [val]
|
|
186
|
+
})
|
|
187
|
+
promises = includes.map(item => remove(item))
|
|
188
|
+
return Promise.all(promises)
|
|
189
|
+
}, () => {
|
|
190
|
+
return gulp.src([`${publishDir}/**`, `${publishDir}/.**`])
|
|
191
|
+
.pipe(logger({
|
|
192
|
+
before: 'copy __npm__...',
|
|
193
|
+
after: 'copy __npm__ complete!',
|
|
194
|
+
showChange: false
|
|
195
|
+
}))
|
|
196
|
+
.pipe(gulp.dest(`${config.publishDir}/`))
|
|
197
|
+
}, async () => {
|
|
198
|
+
await remove(publishDir)
|
|
199
|
+
}));
|
|
200
|
+
|
|
201
|
+
gulp.task('npm-publish', async function () {
|
|
202
|
+
|
|
203
|
+
let publishAccess: string[] = [];
|
|
204
|
+
//公共包
|
|
205
|
+
if (scoped.test(pkg.name)) {
|
|
206
|
+
publishAccess = ["--access", "public"]
|
|
207
|
+
}
|
|
208
|
+
if (config.publishAccess) {
|
|
209
|
+
publishAccess = config.publishAccess;
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
const {stdout} = await run(`npm`, ["whoami", '--registry', REGISTRY], {stdio: undefined})
|
|
213
|
+
log.warn(`===npm登录信息===>${stdout}`)
|
|
214
|
+
} catch (e) {
|
|
215
|
+
log.warn("===npm未登录!!请登录")
|
|
216
|
+
await run(`npm`, ["login", '--registry', REGISTRY])
|
|
217
|
+
}
|
|
218
|
+
const {confirm} = await prompts({
|
|
219
|
+
type: 'confirm',
|
|
220
|
+
name: 'confirm',
|
|
221
|
+
message: '是否发布?',
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
if (confirm) {
|
|
225
|
+
await run(`npm`, ['publish', ...publishAccess, '--registry', REGISTRY], {
|
|
226
|
+
cwd: path.join(process.cwd(), config.publishDir),
|
|
227
|
+
});
|
|
228
|
+
success(`${json.name}@${json.version}:发布成功!`)
|
|
229
|
+
} else {
|
|
230
|
+
error(`${json.name}@${json.version}:取消成功!`)
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
export default gulp.series('clean', 'del-cjs-iife-es', 'copy-cjs', 'copy-es', 'copy-iife', 'remove-__npm__', 'copy-info', 'npm-publish')
|
package/src/type.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
|
|
3
|
+
declare module "rename" {
|
|
4
|
+
export = rename;
|
|
5
|
+
|
|
6
|
+
function rename(filepath: string | rename.FileObject, transformer: rename.Transformer): rename.FilePath;
|
|
7
|
+
|
|
8
|
+
namespace rename {
|
|
9
|
+
interface FileObject {
|
|
10
|
+
// using package's terminology
|
|
11
|
+
dirname?: string | undefined;
|
|
12
|
+
basename?: string | undefined;
|
|
13
|
+
extname?: string | undefined;
|
|
14
|
+
path?: string | undefined;
|
|
15
|
+
hash?: string | undefined; // not populated by package
|
|
16
|
+
origin?: string | undefined;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface Specification {
|
|
20
|
+
dirname?: string | undefined;
|
|
21
|
+
prefix?: string | undefined;
|
|
22
|
+
basename?: string | undefined;
|
|
23
|
+
suffix?: string | undefined;
|
|
24
|
+
extname?: string | undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
type FilePath =
|
|
28
|
+
| string
|
|
29
|
+
| Specification;
|
|
30
|
+
|
|
31
|
+
type Transformer =
|
|
32
|
+
| ((spec: FileObject) => FilePath)
|
|
33
|
+
| FilePath;
|
|
34
|
+
|
|
35
|
+
interface ParsedFileObject {
|
|
36
|
+
dirname: string;
|
|
37
|
+
extname: string;
|
|
38
|
+
basename: string;
|
|
39
|
+
origin: string;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function parse(filename: string | Partial<ParsedFileObject>): ParsedFileObject;
|
|
43
|
+
|
|
44
|
+
function stringify(obj: FileObject): string;
|
|
45
|
+
}
|
|
46
|
+
}
|
package/cjs/index.d.ts
DELETED
package/cjs/index.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
11
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
var _gulp = _interopRequireWildcard(require("@es-pkg/gulp"));
|
|
14
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
15
|
-
var _gulpLogger = _interopRequireDefault(require("@es-pkg/gulp-logger"));
|
|
16
|
-
var _fs = _interopRequireDefault(require("fs"));
|
|
17
|
-
var _path = _interopRequireDefault(require("path"));
|
|
18
|
-
var _utils = require("@es-pkg/utils");
|
|
19
|
-
var _config = require("@es-pkg/config");
|
|
20
|
-
var _prompts = _interopRequireDefault(require("prompts"));
|
|
21
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
22
|
-
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; } // 改变屏幕文字颜色
|
|
23
|
-
var scoped = /^@[a-zA-Z0-9-]+\/.+$/;
|
|
24
|
-
var REGISTRY = "https://registry.npmjs.org";
|
|
25
|
-
var json = _config.pkg;
|
|
26
|
-
var publishDir = _path.default.join(_config.config.publishDir, './__npm__');
|
|
27
|
-
_gulp.default.task('clean', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
28
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
29
|
-
while (1) switch (_context.prev = _context.next) {
|
|
30
|
-
case 0:
|
|
31
|
-
(0, _utils.log)("\u6E05\u9664".concat(publishDir, "\u5F00\u59CB"));
|
|
32
|
-
_context.prev = 1;
|
|
33
|
-
_context.next = 4;
|
|
34
|
-
return (0, _utils.remove)(publishDir);
|
|
35
|
-
case 4:
|
|
36
|
-
(0, _utils.log)("\u6E05\u9664".concat(publishDir, "\u5B8C\u6210"));
|
|
37
|
-
_context.next = 10;
|
|
38
|
-
break;
|
|
39
|
-
case 7:
|
|
40
|
-
_context.prev = 7;
|
|
41
|
-
_context.t0 = _context["catch"](1);
|
|
42
|
-
(0, _utils.log)("\u6E05\u9664".concat(publishDir, "\u5931\u8D25\uFF1A"), _context.t0);
|
|
43
|
-
case 10:
|
|
44
|
-
case "end":
|
|
45
|
-
return _context.stop();
|
|
46
|
-
}
|
|
47
|
-
}, _callee, null, [[1, 7]]);
|
|
48
|
-
})));
|
|
49
|
-
_gulp.default.task('del-cjs-iife-es', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
50
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
51
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
52
|
-
case 0:
|
|
53
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.iife), " \u5F00\u59CB"));
|
|
54
|
-
_context2.next = 3;
|
|
55
|
-
return (0, _utils.remove)("".concat(_path.default.join("".concat(publishDir), _config.config.iife)));
|
|
56
|
-
case 3:
|
|
57
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.iife), " \u7ED3\u675F"));
|
|
58
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.cjs), " \u5F00\u59CB"));
|
|
59
|
-
_context2.next = 7;
|
|
60
|
-
return (0, _utils.remove)("".concat(_path.default.join("".concat(publishDir), _config.config.cjs)));
|
|
61
|
-
case 7:
|
|
62
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.cjs), " \u7ED3\u675F"));
|
|
63
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.es), " \u5F00\u59CB"));
|
|
64
|
-
_context2.next = 11;
|
|
65
|
-
return (0, _utils.remove)("".concat(_path.default.join("".concat(publishDir), _config.config.es)));
|
|
66
|
-
case 11:
|
|
67
|
-
(0, _utils.log)("\u5220\u9664 ".concat(_path.default.join("".concat(publishDir), _config.config.es), " \u7ED3\u675F"));
|
|
68
|
-
case 12:
|
|
69
|
-
case "end":
|
|
70
|
-
return _context2.stop();
|
|
71
|
-
}
|
|
72
|
-
}, _callee2);
|
|
73
|
-
})));
|
|
74
|
-
_gulp.default.task('copy-info', (0, _gulp.series)(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
75
|
-
var controller, _yield$import, fetch, errored, timer, response, res, _yield$prompts, version, es, cjs, iife, CJSExists, ESExists, IIFEExists, mainExists, browserExists, moduleExists, _es, _cjs, jsonStr, ex;
|
|
76
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
77
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
78
|
-
case 0:
|
|
79
|
-
(0, _utils.log)("\u751F\u6210 package \u5F00\u59CB");
|
|
80
|
-
controller = new AbortController();
|
|
81
|
-
_context3.next = 4;
|
|
82
|
-
return Promise.resolve().then(function () {
|
|
83
|
-
return _interopRequireWildcard(require("node-fetch"));
|
|
84
|
-
});
|
|
85
|
-
case 4:
|
|
86
|
-
_yield$import = _context3.sent;
|
|
87
|
-
fetch = _yield$import.default;
|
|
88
|
-
errored = false;
|
|
89
|
-
_context3.prev = 7;
|
|
90
|
-
timer = setTimeout(function () {
|
|
91
|
-
controller.abort();
|
|
92
|
-
}, 2000);
|
|
93
|
-
_context3.next = 11;
|
|
94
|
-
return fetch("https://registry.npmjs.org/".concat(_config.pkg.name), {
|
|
95
|
-
signal: controller.signal
|
|
96
|
-
});
|
|
97
|
-
case 11:
|
|
98
|
-
response = _context3.sent;
|
|
99
|
-
clearTimeout(timer);
|
|
100
|
-
_context3.next = 15;
|
|
101
|
-
return response.json();
|
|
102
|
-
case 15:
|
|
103
|
-
res = _context3.sent;
|
|
104
|
-
if (res["error"] === 'Not found') {
|
|
105
|
-
(0, _utils.log)("\u672A\u83B7\u53D6\u5230\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u4FE1\u606F", JSON.stringify(res));
|
|
106
|
-
json.version = _config.pkg.version;
|
|
107
|
-
} else {
|
|
108
|
-
(0, _utils.log)("\u8FDC\u7A0B\u83B7\u53D6\u7248\u672C\u4FE1\u606F tag:", res["dist-tags"].latest);
|
|
109
|
-
if (res["dist-tags"]) {
|
|
110
|
-
json.version = (0, _utils.compare)(_config.pkg.version, res["dist-tags"].latest) <= 0 ? (0, _utils.autoUpgrade)(res["dist-tags"].latest) : _config.pkg.version;
|
|
111
|
-
} else {
|
|
112
|
-
errored = true;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
_context3.next = 22;
|
|
116
|
-
break;
|
|
117
|
-
case 19:
|
|
118
|
-
_context3.prev = 19;
|
|
119
|
-
_context3.t0 = _context3["catch"](7);
|
|
120
|
-
errored = true;
|
|
121
|
-
case 22:
|
|
122
|
-
if (!errored) {
|
|
123
|
-
_context3.next = 28;
|
|
124
|
-
break;
|
|
125
|
-
}
|
|
126
|
-
_context3.next = 25;
|
|
127
|
-
return (0, _prompts.default)({
|
|
128
|
-
type: 'text',
|
|
129
|
-
name: 'version',
|
|
130
|
-
message: '远程获取版本失败!请输入版本号',
|
|
131
|
-
initial: _config.pkg.version
|
|
132
|
-
});
|
|
133
|
-
case 25:
|
|
134
|
-
_yield$prompts = _context3.sent;
|
|
135
|
-
version = _yield$prompts.version;
|
|
136
|
-
json.version = version;
|
|
137
|
-
case 28:
|
|
138
|
-
delete json.devDependencies;
|
|
139
|
-
delete json.scripts;
|
|
140
|
-
if (!json.publishConfig) {
|
|
141
|
-
json.publishConfig = {
|
|
142
|
-
access: "public",
|
|
143
|
-
registry: REGISTRY
|
|
144
|
-
};
|
|
145
|
-
}
|
|
146
|
-
es = _path.default.basename(_config.config.es);
|
|
147
|
-
cjs = _path.default.basename(_config.config.cjs);
|
|
148
|
-
iife = _path.default.basename(_config.config.iife);
|
|
149
|
-
CJSExists = _fs.default.existsSync(_path.default.join("".concat(publishDir), cjs));
|
|
150
|
-
ESExists = _fs.default.existsSync(_path.default.join("".concat(publishDir), es));
|
|
151
|
-
IIFEExists = _fs.default.existsSync(_path.default.join("".concat(publishDir), iife));
|
|
152
|
-
mainExists = !!json.main && _fs.default.existsSync(_path.default.join((0, _config.resolveApp)(''), json.main));
|
|
153
|
-
browserExists = !!json.browser && _fs.default.existsSync(_path.default.join((0, _config.resolveApp)(''), json.main));
|
|
154
|
-
moduleExists = !!json.module && _fs.default.existsSync(_path.default.join((0, _config.resolveApp)(''), json.main));
|
|
155
|
-
_es = (0, _config.getEntrypoint)(_config.config.es);
|
|
156
|
-
_cjs = (0, _config.getEntrypoint)(_config.config.cjs);
|
|
157
|
-
if (!mainExists) {
|
|
158
|
-
if (ESExists) {
|
|
159
|
-
json.main = _es || _cjs;
|
|
160
|
-
}
|
|
161
|
-
if (CJSExists) {
|
|
162
|
-
json.main = _cjs || _es;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
if (!moduleExists && CJSExists) {
|
|
166
|
-
json.module = (0, _config.getEntrypoint)(_config.config.es) || _es || _cjs;
|
|
167
|
-
}
|
|
168
|
-
if (!browserExists && IIFEExists) {
|
|
169
|
-
json.browser = (0, _config.getEntrypoint)(_config.config.iife);
|
|
170
|
-
}
|
|
171
|
-
if (!json.types) {
|
|
172
|
-
json.types = (0, _config.getEntrypoint)(_config.config.es, _config.config.typings) || _es || _cjs;
|
|
173
|
-
}
|
|
174
|
-
json.files = [ESExists && es, CJSExists && cjs, IIFEExists && iife].filter(Boolean);
|
|
175
|
-
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(function (_ref4) {
|
|
176
|
-
var _ref5 = (0, _slicedToArray2.default)(_ref4, 2),
|
|
177
|
-
key = _ref5[0],
|
|
178
|
-
value = _ref5[1];
|
|
179
|
-
if (value.startsWith('file://') || value.startsWith('workspace:')) {
|
|
180
|
-
return [key, 'latest'];
|
|
181
|
-
}
|
|
182
|
-
return [key, value];
|
|
183
|
-
}));
|
|
184
|
-
jsonStr = JSON.stringify(json, null, "\t");
|
|
185
|
-
ex = _fs.default.existsSync("".concat(publishDir, "/"));
|
|
186
|
-
if (!ex) {
|
|
187
|
-
_fs.default.mkdirSync("".concat(publishDir, "/"), {
|
|
188
|
-
recursive: true
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
_fs.default.writeFileSync("".concat(publishDir, "/package.json"), jsonStr);
|
|
192
|
-
(0, _utils.log)("\u751F\u6210 package\u5B8C\u6210", _chalk.default.green(json.version));
|
|
193
|
-
(0, _utils.log)("\u751F\u6210 .npmrc \u5F00\u59CB");
|
|
194
|
-
_fs.default.writeFileSync("".concat(publishDir, "/.npmrc"), "registry=".concat(REGISTRY));
|
|
195
|
-
(0, _utils.log)("\u751F\u6210 .npmrc \u5B8C\u6210");
|
|
196
|
-
(0, _utils.log)("\u62F7\u8D1D README \u5F00\u59CB");
|
|
197
|
-
case 57:
|
|
198
|
-
case "end":
|
|
199
|
-
return _context3.stop();
|
|
200
|
-
}
|
|
201
|
-
}, _callee3, null, [[7, 19]]);
|
|
202
|
-
})), function () {
|
|
203
|
-
return _gulp.default.src(["./README.md"]).pipe((0, _gulpLogger.default)({
|
|
204
|
-
before: 'copy README...',
|
|
205
|
-
after: 'copy README complete!',
|
|
206
|
-
showChange: false
|
|
207
|
-
})).pipe(_gulp.default.dest("".concat(publishDir, "/")));
|
|
208
|
-
}));
|
|
209
|
-
_gulp.default.task('copy-iife', function () {
|
|
210
|
-
(0, _utils.log)("\u62F7\u8D1D '/iife/**' \u5F00\u59CB");
|
|
211
|
-
return _gulp.default.src(["".concat(_config.config.iife, "/.**"), "".concat(_config.config.iife, "/**")]).pipe((0, _gulpLogger.default)({
|
|
212
|
-
before: 'copy iife...',
|
|
213
|
-
after: 'copy iife complete!',
|
|
214
|
-
showChange: false
|
|
215
|
-
})).pipe(_gulp.default.dest(_path.default.join("".concat(publishDir), _path.default.basename(_config.config.iife))));
|
|
216
|
-
});
|
|
217
|
-
_gulp.default.task('copy-cjs', function () {
|
|
218
|
-
return _gulp.default.src(["".concat(_config.config.cjs, "/.**"), "".concat(_config.config.cjs, "/**")]).pipe((0, _gulpLogger.default)({
|
|
219
|
-
before: 'copy cjs...',
|
|
220
|
-
after: 'copy cjs complete!',
|
|
221
|
-
showChange: false
|
|
222
|
-
})).pipe(_gulp.default.dest(_path.default.join("".concat(publishDir), _path.default.basename(_config.config.cjs))));
|
|
223
|
-
});
|
|
224
|
-
_gulp.default.task('copy-es', function () {
|
|
225
|
-
return _gulp.default.src(["".concat(_config.config.es, "/.**"), "".concat(_config.config.es, "/**")]).pipe((0, _gulpLogger.default)({
|
|
226
|
-
before: 'copy es...',
|
|
227
|
-
after: 'copy es complete!',
|
|
228
|
-
showChange: false
|
|
229
|
-
})).pipe(_gulp.default.dest(_path.default.join("".concat(publishDir), _path.default.basename(_config.config.es))));
|
|
230
|
-
});
|
|
231
|
-
_gulp.default.task('remove-__npm__', (0, _gulp.series)(function () {
|
|
232
|
-
var promises = [];
|
|
233
|
-
if (_config.config.removeCompiled) {
|
|
234
|
-
promises = [(0, _utils.remove)(_config.config.es), (0, _utils.remove)(_config.config.cjs), (0, _utils.remove)(_config.config.iife)];
|
|
235
|
-
}
|
|
236
|
-
return Promise.all(promises);
|
|
237
|
-
}, function () {
|
|
238
|
-
return _gulp.default.src(["".concat(publishDir, "/**"), "".concat(publishDir, "/.**")]).pipe((0, _gulpLogger.default)({
|
|
239
|
-
before: 'copy __npm__...',
|
|
240
|
-
after: 'copy __npm__ complete!',
|
|
241
|
-
showChange: false
|
|
242
|
-
})).pipe(_gulp.default.dest("".concat(_config.config.publishDir, "/")));
|
|
243
|
-
}, /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
244
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
245
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
246
|
-
case 0:
|
|
247
|
-
_context4.next = 2;
|
|
248
|
-
return (0, _utils.remove)(publishDir);
|
|
249
|
-
case 2:
|
|
250
|
-
case "end":
|
|
251
|
-
return _context4.stop();
|
|
252
|
-
}
|
|
253
|
-
}, _callee4);
|
|
254
|
-
}))));
|
|
255
|
-
_gulp.default.task('npm-publish', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
256
|
-
var publishAccess, _yield$run, stdout, _yield$prompts2, confirm;
|
|
257
|
-
return _regenerator.default.wrap(function _callee5$(_context5) {
|
|
258
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
259
|
-
case 0:
|
|
260
|
-
publishAccess = []; //公共包
|
|
261
|
-
if (scoped.test(_config.pkg.name)) {
|
|
262
|
-
publishAccess = ["--access", "public"];
|
|
263
|
-
}
|
|
264
|
-
if (_config.config.publishAccess) {
|
|
265
|
-
publishAccess = _config.config.publishAccess;
|
|
266
|
-
}
|
|
267
|
-
_context5.prev = 3;
|
|
268
|
-
_context5.next = 6;
|
|
269
|
-
return (0, _utils.run)("npm", ["whoami", '--registry', REGISTRY], {
|
|
270
|
-
stdio: undefined
|
|
271
|
-
});
|
|
272
|
-
case 6:
|
|
273
|
-
_yield$run = _context5.sent;
|
|
274
|
-
stdout = _yield$run.stdout;
|
|
275
|
-
_utils.log.warn("===npm\u767B\u5F55\u4FE1\u606F===>".concat(stdout));
|
|
276
|
-
_context5.next = 16;
|
|
277
|
-
break;
|
|
278
|
-
case 11:
|
|
279
|
-
_context5.prev = 11;
|
|
280
|
-
_context5.t0 = _context5["catch"](3);
|
|
281
|
-
_utils.log.warn("===npm未登录!!请登录");
|
|
282
|
-
_context5.next = 16;
|
|
283
|
-
return (0, _utils.run)("npm", ["login", '--registry', REGISTRY]);
|
|
284
|
-
case 16:
|
|
285
|
-
_context5.next = 18;
|
|
286
|
-
return (0, _prompts.default)({
|
|
287
|
-
type: 'confirm',
|
|
288
|
-
name: 'confirm',
|
|
289
|
-
message: '是否发布?'
|
|
290
|
-
});
|
|
291
|
-
case 18:
|
|
292
|
-
_yield$prompts2 = _context5.sent;
|
|
293
|
-
confirm = _yield$prompts2.confirm;
|
|
294
|
-
if (!confirm) {
|
|
295
|
-
_context5.next = 26;
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
_context5.next = 23;
|
|
299
|
-
return (0, _utils.run)("npm", ['publish'].concat((0, _toConsumableArray2.default)(publishAccess), ['--registry', REGISTRY]), {
|
|
300
|
-
cwd: _path.default.join(process.cwd(), _config.config.publishDir)
|
|
301
|
-
});
|
|
302
|
-
case 23:
|
|
303
|
-
(0, _utils.success)("".concat(json.name, "@").concat(json.version, ":\u53D1\u5E03\u6210\u529F\uFF01"));
|
|
304
|
-
_context5.next = 27;
|
|
305
|
-
break;
|
|
306
|
-
case 26:
|
|
307
|
-
(0, _utils.error)("".concat(json.name, "@").concat(json.version, ":\u53D6\u6D88\u6210\u529F\uFF01"));
|
|
308
|
-
case 27:
|
|
309
|
-
case "end":
|
|
310
|
-
return _context5.stop();
|
|
311
|
-
}
|
|
312
|
-
}, _callee5, null, [[3, 11]]);
|
|
313
|
-
})));
|
|
314
|
-
var _default = exports.default = _gulp.default.series('clean', 'del-cjs-iife-es', 'copy-cjs', 'copy-es', 'copy-iife', 'copy-info', 'remove-__npm__', 'npm-publish');
|
package/esm/index.d.ts
DELETED
package/esm/index.js
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import gulp, { series } from '@es-pkg/gulp';
|
|
2
|
-
import chalk from 'chalk'; // 改变屏幕文字颜色
|
|
3
|
-
import logger from '@es-pkg/gulp-logger';
|
|
4
|
-
import fs from "fs";
|
|
5
|
-
import path from "path";
|
|
6
|
-
import { autoUpgrade, compare, remove, run, error, log, success } from "@es-pkg/utils";
|
|
7
|
-
import { config, getEntrypoint, pkg, resolveApp } from "@es-pkg/config";
|
|
8
|
-
import prompts from "prompts";
|
|
9
|
-
const scoped = /^@[a-zA-Z0-9-]+\/.+$/;
|
|
10
|
-
const REGISTRY = "https://registry.npmjs.org";
|
|
11
|
-
const json = pkg;
|
|
12
|
-
const publishDir = path.join(config.publishDir, './__npm__');
|
|
13
|
-
gulp.task('clean', async () => {
|
|
14
|
-
log(`清除${publishDir}开始`);
|
|
15
|
-
try {
|
|
16
|
-
await remove(publishDir);
|
|
17
|
-
log(`清除${publishDir}完成`);
|
|
18
|
-
}
|
|
19
|
-
catch (e) {
|
|
20
|
-
log(`清除${publishDir}失败:`, e);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
gulp.task('del-cjs-iife-es', async () => {
|
|
24
|
-
log(`删除 ${path.join(`${publishDir}`, config.iife)} 开始`);
|
|
25
|
-
await remove(`${path.join(`${publishDir}`, config.iife)}`);
|
|
26
|
-
log(`删除 ${path.join(`${publishDir}`, config.iife)} 结束`);
|
|
27
|
-
log(`删除 ${path.join(`${publishDir}`, config.cjs)} 开始`);
|
|
28
|
-
await remove(`${path.join(`${publishDir}`, config.cjs)}`);
|
|
29
|
-
log(`删除 ${path.join(`${publishDir}`, config.cjs)} 结束`);
|
|
30
|
-
log(`删除 ${path.join(`${publishDir}`, config.es)} 开始`);
|
|
31
|
-
await remove(`${path.join(`${publishDir}`, config.es)}`);
|
|
32
|
-
log(`删除 ${path.join(`${publishDir}`, config.es)} 结束`);
|
|
33
|
-
});
|
|
34
|
-
gulp.task('copy-info', series(async () => {
|
|
35
|
-
log(`生成 package 开始`);
|
|
36
|
-
const controller = new AbortController();
|
|
37
|
-
const { default: fetch } = await import("node-fetch");
|
|
38
|
-
let errored = false;
|
|
39
|
-
try {
|
|
40
|
-
const timer = setTimeout(() => {
|
|
41
|
-
controller.abort();
|
|
42
|
-
}, 2000);
|
|
43
|
-
const response = await fetch(`https://registry.npmjs.org/${pkg.name}`, {
|
|
44
|
-
signal: controller.signal,
|
|
45
|
-
});
|
|
46
|
-
clearTimeout(timer);
|
|
47
|
-
const res = await response.json();
|
|
48
|
-
if (res["error"] === 'Not found') {
|
|
49
|
-
log(`未获取到远程获取版本信息`, JSON.stringify(res));
|
|
50
|
-
json.version = pkg.version;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
log(`远程获取版本信息 tag:`, res["dist-tags"].latest);
|
|
54
|
-
if (res["dist-tags"]) {
|
|
55
|
-
json.version = compare(pkg.version, res["dist-tags"].latest) <= 0 ? autoUpgrade(res["dist-tags"].latest) : pkg.version;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
errored = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch (e) {
|
|
63
|
-
errored = true;
|
|
64
|
-
}
|
|
65
|
-
if (errored) {
|
|
66
|
-
const { version } = await prompts({
|
|
67
|
-
type: 'text',
|
|
68
|
-
name: 'version',
|
|
69
|
-
message: '远程获取版本失败!请输入版本号',
|
|
70
|
-
initial: pkg.version
|
|
71
|
-
});
|
|
72
|
-
json.version = version;
|
|
73
|
-
}
|
|
74
|
-
delete json.devDependencies;
|
|
75
|
-
delete json.scripts;
|
|
76
|
-
if (!json.publishConfig) {
|
|
77
|
-
json.publishConfig = {
|
|
78
|
-
access: "public",
|
|
79
|
-
registry: REGISTRY
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
const es = path.basename(config.es);
|
|
83
|
-
const cjs = path.basename(config.cjs);
|
|
84
|
-
const iife = path.basename(config.iife);
|
|
85
|
-
const CJSExists = fs.existsSync(path.join(`${publishDir}`, cjs));
|
|
86
|
-
const ESExists = fs.existsSync(path.join(`${publishDir}`, es));
|
|
87
|
-
const IIFEExists = fs.existsSync(path.join(`${publishDir}`, iife));
|
|
88
|
-
const mainExists = !!json.main && fs.existsSync(path.join(resolveApp(''), json.main));
|
|
89
|
-
const browserExists = !!json.browser && fs.existsSync(path.join(resolveApp(''), json.main));
|
|
90
|
-
const moduleExists = !!json.module && fs.existsSync(path.join(resolveApp(''), json.main));
|
|
91
|
-
const _es = getEntrypoint(config.es);
|
|
92
|
-
const _cjs = getEntrypoint(config.cjs);
|
|
93
|
-
if (!mainExists) {
|
|
94
|
-
if (ESExists) {
|
|
95
|
-
json.main = _es || _cjs;
|
|
96
|
-
}
|
|
97
|
-
if (CJSExists) {
|
|
98
|
-
json.main = _cjs || _es;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (!moduleExists && CJSExists) {
|
|
102
|
-
json.module = getEntrypoint(config.es) || _es || _cjs;
|
|
103
|
-
}
|
|
104
|
-
if (!browserExists && IIFEExists) {
|
|
105
|
-
json.browser = getEntrypoint(config.iife);
|
|
106
|
-
}
|
|
107
|
-
if (!json.types) {
|
|
108
|
-
json.types = getEntrypoint(config.es, config.typings) || _es || _cjs;
|
|
109
|
-
}
|
|
110
|
-
json.files = [ESExists && es, CJSExists && cjs, IIFEExists && iife].filter(Boolean);
|
|
111
|
-
json.dependencies = Object.fromEntries(Object.entries(json.dependencies).map(([key, value]) => {
|
|
112
|
-
if (value.startsWith('file://') || value.startsWith('workspace:')) {
|
|
113
|
-
return [key, 'latest'];
|
|
114
|
-
}
|
|
115
|
-
return [key, value];
|
|
116
|
-
}));
|
|
117
|
-
let jsonStr = JSON.stringify(json, null, "\t");
|
|
118
|
-
const ex = fs.existsSync(`${publishDir}/`);
|
|
119
|
-
if (!ex) {
|
|
120
|
-
fs.mkdirSync(`${publishDir}/`, { recursive: true });
|
|
121
|
-
}
|
|
122
|
-
fs.writeFileSync(`${publishDir}/package.json`, jsonStr);
|
|
123
|
-
log(`生成 package完成`, chalk.green(json.version));
|
|
124
|
-
log(`生成 .npmrc 开始`);
|
|
125
|
-
fs.writeFileSync(`${publishDir}/.npmrc`, `registry=${REGISTRY}`);
|
|
126
|
-
log(`生成 .npmrc 完成`);
|
|
127
|
-
log(`拷贝 README 开始`);
|
|
128
|
-
}, () => {
|
|
129
|
-
return gulp.src([`./README.md`])
|
|
130
|
-
.pipe(logger({
|
|
131
|
-
before: 'copy README...',
|
|
132
|
-
after: 'copy README complete!',
|
|
133
|
-
showChange: false
|
|
134
|
-
}))
|
|
135
|
-
.pipe(gulp.dest(`${publishDir}/`));
|
|
136
|
-
}));
|
|
137
|
-
gulp.task('copy-iife', () => {
|
|
138
|
-
log(`拷贝 '/iife/**' 开始`);
|
|
139
|
-
return gulp.src([`${config.iife}/.**`, `${config.iife}/**`])
|
|
140
|
-
.pipe(logger({
|
|
141
|
-
before: 'copy iife...',
|
|
142
|
-
after: 'copy iife complete!',
|
|
143
|
-
showChange: false
|
|
144
|
-
}))
|
|
145
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.iife))));
|
|
146
|
-
});
|
|
147
|
-
gulp.task('copy-cjs', () => {
|
|
148
|
-
return gulp.src([`${config.cjs}/.**`, `${config.cjs}/**`])
|
|
149
|
-
.pipe(logger({
|
|
150
|
-
before: 'copy cjs...',
|
|
151
|
-
after: 'copy cjs complete!',
|
|
152
|
-
showChange: false
|
|
153
|
-
}))
|
|
154
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.cjs))));
|
|
155
|
-
});
|
|
156
|
-
gulp.task('copy-es', () => {
|
|
157
|
-
return gulp.src([`${config.es}/.**`, `${config.es}/**`])
|
|
158
|
-
.pipe(logger({
|
|
159
|
-
before: 'copy es...',
|
|
160
|
-
after: 'copy es complete!',
|
|
161
|
-
showChange: false
|
|
162
|
-
}))
|
|
163
|
-
.pipe(gulp.dest(path.join(`${publishDir}`, path.basename(config.es))));
|
|
164
|
-
});
|
|
165
|
-
gulp.task('remove-__npm__', series(() => {
|
|
166
|
-
let promises = [];
|
|
167
|
-
if (config.removeCompiled) {
|
|
168
|
-
promises = [remove(config.es), remove(config.cjs), remove(config.iife)];
|
|
169
|
-
}
|
|
170
|
-
return Promise.all(promises);
|
|
171
|
-
}, () => {
|
|
172
|
-
return gulp.src([`${publishDir}/**`, `${publishDir}/.**`])
|
|
173
|
-
.pipe(logger({
|
|
174
|
-
before: 'copy __npm__...',
|
|
175
|
-
after: 'copy __npm__ complete!',
|
|
176
|
-
showChange: false
|
|
177
|
-
}))
|
|
178
|
-
.pipe(gulp.dest(`${config.publishDir}/`));
|
|
179
|
-
}, async () => {
|
|
180
|
-
await remove(publishDir);
|
|
181
|
-
}));
|
|
182
|
-
gulp.task('npm-publish', async function () {
|
|
183
|
-
let publishAccess = [];
|
|
184
|
-
//公共包
|
|
185
|
-
if (scoped.test(pkg.name)) {
|
|
186
|
-
publishAccess = ["--access", "public"];
|
|
187
|
-
}
|
|
188
|
-
if (config.publishAccess) {
|
|
189
|
-
publishAccess = config.publishAccess;
|
|
190
|
-
}
|
|
191
|
-
try {
|
|
192
|
-
const { stdout } = await run(`npm`, ["whoami", '--registry', REGISTRY], { stdio: undefined });
|
|
193
|
-
log.warn(`===npm登录信息===>${stdout}`);
|
|
194
|
-
}
|
|
195
|
-
catch (e) {
|
|
196
|
-
log.warn("===npm未登录!!请登录");
|
|
197
|
-
await run(`npm`, ["login", '--registry', REGISTRY]);
|
|
198
|
-
}
|
|
199
|
-
const { confirm } = await prompts({
|
|
200
|
-
type: 'confirm',
|
|
201
|
-
name: 'confirm',
|
|
202
|
-
message: '是否发布?',
|
|
203
|
-
});
|
|
204
|
-
if (confirm) {
|
|
205
|
-
await run(`npm`, ['publish', ...publishAccess, '--registry', REGISTRY], {
|
|
206
|
-
cwd: path.join(process.cwd(), config.publishDir),
|
|
207
|
-
});
|
|
208
|
-
success(`${json.name}@${json.version}:发布成功!`);
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
error(`${json.name}@${json.version}:取消成功!`);
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
export default gulp.series('clean', 'del-cjs-iife-es', 'copy-cjs', 'copy-es', 'copy-iife', 'copy-info', 'remove-__npm__', 'npm-publish');
|