@es-pkg/publish 1.0.2 → 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.2",
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": "esm/index.js",
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,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
@@ -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,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');