@es-pkg/compile 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +66 -39
- package/esm/index.js +11 -4
- package/package.json +1 -1
package/cjs/index.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var gulp = require('@es-pkg/gulp');
|
|
6
6
|
var utils = require('@es-pkg/utils');
|
|
7
|
-
var
|
|
7
|
+
var esConfig = require('@es-pkg/config');
|
|
8
8
|
var rollup = require('rollup');
|
|
9
9
|
var resolve = require('@rollup/plugin-node-resolve');
|
|
10
10
|
var commonjs = require('@rollup/plugin-commonjs');
|
|
@@ -20,7 +20,27 @@ var ts = require('typescript');
|
|
|
20
20
|
|
|
21
21
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
22
|
|
|
23
|
+
function _interopNamespace(e) {
|
|
24
|
+
if (e && e.__esModule) return e;
|
|
25
|
+
var n = Object.create(null);
|
|
26
|
+
if (e) {
|
|
27
|
+
Object.keys(e).forEach(function (k) {
|
|
28
|
+
if (k !== 'default') {
|
|
29
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
30
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () { return e[k]; }
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
n.default = e;
|
|
38
|
+
return Object.freeze(n);
|
|
39
|
+
}
|
|
40
|
+
|
|
23
41
|
var gulp__default = /*#__PURE__*/_interopDefault(gulp);
|
|
42
|
+
var utils__namespace = /*#__PURE__*/_interopNamespace(utils);
|
|
43
|
+
var esConfig__namespace = /*#__PURE__*/_interopNamespace(esConfig);
|
|
24
44
|
var resolve__default = /*#__PURE__*/_interopDefault(resolve);
|
|
25
45
|
var commonjs__default = /*#__PURE__*/_interopDefault(commonjs);
|
|
26
46
|
var json__default = /*#__PURE__*/_interopDefault(json);
|
|
@@ -32,17 +52,19 @@ var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
|
32
52
|
var esbuild__default = /*#__PURE__*/_interopDefault(esbuild);
|
|
33
53
|
var ts__default = /*#__PURE__*/_interopDefault(ts);
|
|
34
54
|
|
|
35
|
-
const
|
|
55
|
+
const { remove, log, getValidPkgName, toPascalCase } = utils__namespace;
|
|
56
|
+
const { config, collectInputs, shallowInputs, pkg, relativeToApp, resolveApp } = esConfig__namespace;
|
|
57
|
+
const name = getValidPkgName(pkg.name);
|
|
36
58
|
const clean = () => {
|
|
37
|
-
|
|
59
|
+
log(`\u6E05\u9664 ${relativeToApp(config.es)} & ${relativeToApp(config.cjs)} \u76EE\u5F55---\u5F00\u59CB`);
|
|
38
60
|
const promises = [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
61
|
+
remove(config.publishDir, true),
|
|
62
|
+
remove(config.es, true),
|
|
63
|
+
remove(config.cjs, true),
|
|
64
|
+
remove(config.iife, true)
|
|
43
65
|
];
|
|
44
66
|
return Promise.all(promises).then(() => {
|
|
45
|
-
|
|
67
|
+
log(`\u6E05\u9664 ${relativeToApp(config.es)} & ${relativeToApp(config.cjs)} \u76EE\u5F55---\u7ED3\u675F`);
|
|
46
68
|
});
|
|
47
69
|
};
|
|
48
70
|
function getPostcss(extract) {
|
|
@@ -53,7 +75,7 @@ function getPostcss(extract) {
|
|
|
53
75
|
less: ["less"],
|
|
54
76
|
sass: ["sass"]
|
|
55
77
|
},
|
|
56
|
-
plugins: [autoprefixer__default.default({ overrideBrowserslist: config.
|
|
78
|
+
plugins: [autoprefixer__default.default({ overrideBrowserslist: config.css.browserslist }), cssnano__default.default()],
|
|
57
79
|
extract
|
|
58
80
|
});
|
|
59
81
|
}
|
|
@@ -67,7 +89,7 @@ function isNodeModule(id) {
|
|
|
67
89
|
}
|
|
68
90
|
function getInputOptions(format) {
|
|
69
91
|
return {
|
|
70
|
-
input:
|
|
92
|
+
input: shallowInputs.filter((item) => !item.endsWith(".d.ts")),
|
|
71
93
|
external: (id) => {
|
|
72
94
|
if (node_module.builtinModules.includes(id)) return true;
|
|
73
95
|
if (!id.startsWith(".") && !path__default.default.isAbsolute(id) && isNodeModule(id)) return true;
|
|
@@ -76,29 +98,34 @@ function getInputOptions(format) {
|
|
|
76
98
|
plugins: [
|
|
77
99
|
json__default.default(),
|
|
78
100
|
resolve__default.default(),
|
|
79
|
-
esbuild__default.default({ target: "es2018", format: "esm" }),
|
|
80
101
|
commonjs__default.default({
|
|
81
102
|
defaultIsModuleExports: true,
|
|
82
103
|
esmExternals: true,
|
|
83
104
|
transformMixedEsModules: true
|
|
84
105
|
// 混合模块也转换
|
|
85
106
|
}),
|
|
86
|
-
|
|
107
|
+
esbuild__default.default({ target: "es2018", format: "esm" }),
|
|
108
|
+
getPostcss(config.css.extract)
|
|
87
109
|
]
|
|
88
110
|
};
|
|
89
111
|
}
|
|
90
112
|
async function buildDeclarations() {
|
|
91
|
-
const tsConfig = ts__default.default.readConfigFile(
|
|
113
|
+
const tsConfig = ts__default.default.readConfigFile(resolveApp("tsconfig.json"), ts__default.default.sys.readFile);
|
|
92
114
|
if (tsConfig.error) {
|
|
93
115
|
console.log(tsConfig.error.messageText);
|
|
94
116
|
}
|
|
95
|
-
const
|
|
117
|
+
const parsedConfig = ts__default.default.parseJsonConfigFileContent(
|
|
118
|
+
tsConfig.config,
|
|
119
|
+
ts__default.default.sys,
|
|
120
|
+
resolveApp("./")
|
|
121
|
+
);
|
|
122
|
+
const entryFiles = collectInputs.filter((item) => [".ts", ".tsx"].some((suf) => item.endsWith(suf)));
|
|
96
123
|
const compilerOptions = {
|
|
97
|
-
...
|
|
124
|
+
...parsedConfig.options,
|
|
98
125
|
declaration: true,
|
|
99
126
|
emitDeclarationOnly: true,
|
|
100
|
-
outDir: config.
|
|
101
|
-
rootDir:
|
|
127
|
+
outDir: config.es,
|
|
128
|
+
rootDir: resolveApp("src"),
|
|
102
129
|
skipLibCheck: true,
|
|
103
130
|
esModuleInterop: true,
|
|
104
131
|
moduleResolution: ts__default.default.ModuleResolutionKind.NodeJs,
|
|
@@ -123,18 +150,18 @@ async function buildDeclarations() {
|
|
|
123
150
|
})
|
|
124
151
|
);
|
|
125
152
|
} else {
|
|
126
|
-
console.log(`\u2705 Declarations generated in: ${path__default.default.resolve(config.
|
|
153
|
+
console.log(`\u2705 Declarations generated in: ${path__default.default.resolve(config.es)}`);
|
|
127
154
|
}
|
|
128
|
-
|
|
155
|
+
log.success("\u2705 Declarations build complete!");
|
|
129
156
|
}
|
|
130
157
|
async function buildExtraCss() {
|
|
131
|
-
const extras = config.
|
|
158
|
+
const extras = config.css.extra;
|
|
132
159
|
if (!(extras == null ? void 0 : extras.length)) return;
|
|
133
|
-
const srcRoot =
|
|
134
|
-
const esRoot =
|
|
160
|
+
const srcRoot = resolveApp("src");
|
|
161
|
+
const esRoot = resolveApp(config.es);
|
|
135
162
|
const tasks = extras.map(async (v) => {
|
|
136
163
|
try {
|
|
137
|
-
const absPath =
|
|
164
|
+
const absPath = resolveApp(v);
|
|
138
165
|
const relativePath = path__default.default.relative(srcRoot, absPath);
|
|
139
166
|
const dirname = path__default.default.dirname(relativePath);
|
|
140
167
|
const filename = path__default.default.basename(v, path__default.default.extname(v));
|
|
@@ -143,7 +170,7 @@ async function buildExtraCss() {
|
|
|
143
170
|
plugins: getPostcss(path__default.default.join(dirname, `${filename}.min.css`))
|
|
144
171
|
});
|
|
145
172
|
await bundle.write({
|
|
146
|
-
dir: config.
|
|
173
|
+
dir: config.es,
|
|
147
174
|
format: "es",
|
|
148
175
|
sourcemap: false,
|
|
149
176
|
preserveModules: true,
|
|
@@ -151,41 +178,41 @@ async function buildExtraCss() {
|
|
|
151
178
|
});
|
|
152
179
|
const jsFile = path__default.default.join(esRoot, dirname, `${filename}${path__default.default.extname(v)}.js`);
|
|
153
180
|
if (fs__default.default.existsSync(jsFile)) fs__default.default.unlinkSync(jsFile);
|
|
154
|
-
[config.
|
|
155
|
-
const dest = path__default.default.join(
|
|
181
|
+
[config.cjs, config.iife].forEach((targetRoot) => {
|
|
182
|
+
const dest = path__default.default.join(resolveApp(targetRoot), dirname, `${filename}.min.css`);
|
|
156
183
|
fs__default.default.mkdirSync(path__default.default.dirname(dest), { recursive: true });
|
|
157
184
|
fs__default.default.copyFileSync(path__default.default.join(esRoot, dirname, `${filename}.min.css`), dest);
|
|
158
185
|
});
|
|
159
|
-
|
|
186
|
+
log.success(`\u2705 \u7F16\u8BD1\u5B8C\u6210: ${v}`);
|
|
160
187
|
} catch (err) {
|
|
161
|
-
|
|
188
|
+
log.error(`\u274C \u7F16\u8BD1\u5931\u8D25: ${v}`, err);
|
|
162
189
|
}
|
|
163
190
|
});
|
|
164
191
|
await Promise.all(tasks);
|
|
165
|
-
|
|
192
|
+
log.success("\u2705 \u6240\u6709\u989D\u5916 CSS \u7F16\u8BD1\u5B8C\u6210");
|
|
166
193
|
}
|
|
167
194
|
async function buildJS() {
|
|
168
195
|
const outputOptions = [
|
|
169
196
|
{
|
|
170
|
-
dir: config.
|
|
197
|
+
dir: config.es,
|
|
171
198
|
format: "es",
|
|
172
199
|
preserveModules: true,
|
|
173
|
-
preserveModulesRoot:
|
|
200
|
+
preserveModulesRoot: resolveApp("src")
|
|
174
201
|
},
|
|
175
202
|
{
|
|
176
|
-
dir: config.
|
|
203
|
+
dir: config.cjs,
|
|
177
204
|
format: "cjs",
|
|
178
205
|
preserveModules: true,
|
|
179
|
-
preserveModulesRoot:
|
|
206
|
+
preserveModulesRoot: resolveApp("src"),
|
|
180
207
|
exports: "named",
|
|
181
208
|
interop: "auto"
|
|
182
209
|
},
|
|
183
|
-
...config.
|
|
210
|
+
...config.iife ? [
|
|
184
211
|
{
|
|
185
|
-
dir: config.
|
|
212
|
+
dir: config.iife,
|
|
186
213
|
format: "iife",
|
|
187
214
|
exports: "named",
|
|
188
|
-
name:
|
|
215
|
+
name: toPascalCase(name)
|
|
189
216
|
}
|
|
190
217
|
] : []
|
|
191
218
|
];
|
|
@@ -194,10 +221,10 @@ async function buildJS() {
|
|
|
194
221
|
await bundle.write(output);
|
|
195
222
|
}
|
|
196
223
|
await buildExtraCss();
|
|
197
|
-
|
|
224
|
+
log.success("\u2705 JS Build complete!");
|
|
198
225
|
}
|
|
199
|
-
const copySrcTds = () => gulp__default.default.src(config.
|
|
200
|
-
const copyTds = () => gulp__default.default.src([`${config.
|
|
226
|
+
const copySrcTds = () => gulp__default.default.src(config.include.map((t) => `${t}/**/*.d.ts`)).pipe(gulp__default.default.dest(config.es));
|
|
227
|
+
const copyTds = () => gulp__default.default.src([`${config.es}/**/*.d.ts`]).pipe(gulp__default.default.dest(config.cjs));
|
|
201
228
|
var src_default = gulp.series(clean, buildJS, buildDeclarations, copySrcTds, copyTds);
|
|
202
229
|
|
|
203
230
|
exports.default = src_default;
|
package/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import gulp, { series } from '@es-pkg/gulp';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import * as utils from '@es-pkg/utils';
|
|
3
|
+
import * as esConfig from '@es-pkg/config';
|
|
4
4
|
import { rollup } from 'rollup';
|
|
5
5
|
import resolve from '@rollup/plugin-node-resolve';
|
|
6
6
|
import commonjs from '@rollup/plugin-commonjs';
|
|
@@ -14,6 +14,8 @@ import esbuild from 'rollup-plugin-esbuild';
|
|
|
14
14
|
import { builtinModules } from 'node:module';
|
|
15
15
|
import ts from 'typescript';
|
|
16
16
|
|
|
17
|
+
const { remove, log, getValidPkgName, toPascalCase } = utils;
|
|
18
|
+
const { config, collectInputs, shallowInputs, pkg, relativeToApp, resolveApp } = esConfig;
|
|
17
19
|
const name = getValidPkgName(pkg.name);
|
|
18
20
|
const clean = () => {
|
|
19
21
|
log(`\u6E05\u9664 ${relativeToApp(config.es)} & ${relativeToApp(config.cjs)} \u76EE\u5F55---\u5F00\u59CB`);
|
|
@@ -58,13 +60,13 @@ function getInputOptions(format) {
|
|
|
58
60
|
plugins: [
|
|
59
61
|
json(),
|
|
60
62
|
resolve(),
|
|
61
|
-
esbuild({ target: "es2018", format: "esm" }),
|
|
62
63
|
commonjs({
|
|
63
64
|
defaultIsModuleExports: true,
|
|
64
65
|
esmExternals: true,
|
|
65
66
|
transformMixedEsModules: true
|
|
66
67
|
// 混合模块也转换
|
|
67
68
|
}),
|
|
69
|
+
esbuild({ target: "es2018", format: "esm" }),
|
|
68
70
|
getPostcss(config.css.extract)
|
|
69
71
|
]
|
|
70
72
|
};
|
|
@@ -74,9 +76,14 @@ async function buildDeclarations() {
|
|
|
74
76
|
if (tsConfig.error) {
|
|
75
77
|
console.log(tsConfig.error.messageText);
|
|
76
78
|
}
|
|
79
|
+
const parsedConfig = ts.parseJsonConfigFileContent(
|
|
80
|
+
tsConfig.config,
|
|
81
|
+
ts.sys,
|
|
82
|
+
resolveApp("./")
|
|
83
|
+
);
|
|
77
84
|
const entryFiles = collectInputs.filter((item) => [".ts", ".tsx"].some((suf) => item.endsWith(suf)));
|
|
78
85
|
const compilerOptions = {
|
|
79
|
-
...
|
|
86
|
+
...parsedConfig.options,
|
|
80
87
|
declaration: true,
|
|
81
88
|
emitDeclarationOnly: true,
|
|
82
89
|
outDir: config.es,
|