@es-pkg/publish 1.0.1 → 1.0.3

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