@tarojs/webpack5-runner 3.5.0-beta.0 → 3.5.0-beta.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/dist/index.h5.js +94 -92
- package/dist/index.h5.js.map +1 -1
- package/dist/index.mini.js +11 -2
- package/dist/index.mini.js.map +1 -1
- package/dist/plugins/BuildNativePlugin.js +4 -5
- package/dist/plugins/BuildNativePlugin.js.map +1 -1
- package/dist/plugins/H5Plugin.js +23 -12
- package/dist/plugins/H5Plugin.js.map +1 -1
- package/dist/plugins/MiniPlugin.js +34 -11
- package/dist/plugins/MiniPlugin.js.map +1 -1
- package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -1
- package/dist/plugins/TaroLoadChunksPlugin.js +13 -34
- package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -1
- package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -1
- package/dist/postcss/postcss.h5.js +44 -24
- package/dist/postcss/postcss.h5.js.map +1 -1
- package/dist/prerender/prerender.js.map +1 -1
- package/dist/utils/H5AppInstance.js.map +1 -1
- package/dist/utils/webpack.js +28 -1
- package/dist/utils/webpack.js.map +1 -1
- package/dist/webpack/BaseConfig.js.map +1 -1
- package/dist/webpack/BuildNativePlugin.js.map +1 -1
- package/dist/webpack/Combination.js +16 -6
- package/dist/webpack/Combination.js.map +1 -1
- package/dist/webpack/H5Combination.js +15 -5
- package/dist/webpack/H5Combination.js.map +1 -1
- package/dist/webpack/H5WebpackModule.js +6 -5
- package/dist/webpack/H5WebpackModule.js.map +1 -1
- package/dist/webpack/H5WebpackPlugin.js +26 -6
- package/dist/webpack/H5WebpackPlugin.js.map +1 -1
- package/dist/webpack/MiniCombination.js.map +1 -1
- package/dist/webpack/MiniWebpackPlugin.js +1 -1
- package/dist/webpack/MiniWebpackPlugin.js.map +1 -1
- package/package.json +17 -19
- package/dist/prebundle/bundle.js +0 -170
- package/dist/prebundle/bundle.js.map +0 -1
- package/dist/prebundle/constant.js +0 -60
- package/dist/prebundle/constant.js.map +0 -1
- package/dist/prebundle/index.h5.js +0 -235
- package/dist/prebundle/index.h5.js.map +0 -1
- package/dist/prebundle/index.mini.js +0 -251
- package/dist/prebundle/index.mini.js.map +0 -1
- package/dist/prebundle/scanImports.js +0 -186
- package/dist/prebundle/scanImports.js.map +0 -1
- package/dist/prebundle/utils.js +0 -173
- package/dist/prebundle/utils.js.map +0 -1
- package/dist/prebundle/webpack/TaroContainerEntryModule.js +0 -79
- package/dist/prebundle/webpack/TaroContainerEntryModule.js.map +0 -1
- package/dist/prebundle/webpack/TaroContainerPlugin.js +0 -73
- package/dist/prebundle/webpack/TaroContainerPlugin.js.map +0 -1
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js +0 -127
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js.map +0 -1
|
@@ -1,251 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.preBundle = void 0;
|
|
16
|
-
// Inspired by [vite](https://github.com/vitejs/vite)
|
|
17
|
-
/** @license
|
|
18
|
-
* MIT License
|
|
19
|
-
*
|
|
20
|
-
* Copyright (c) 2019-present, Yuxi (Evan) You and Vite contributors
|
|
21
|
-
*
|
|
22
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
23
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
24
|
-
* in the Software without restriction, including without limitation the rights
|
|
25
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
26
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
27
|
-
* furnished to do so, subject to the following conditions:
|
|
28
|
-
*
|
|
29
|
-
* The above copyright notice and this permission notice shall be included in all
|
|
30
|
-
* copies or substantial portions of the Software.
|
|
31
|
-
*
|
|
32
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
33
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
34
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
35
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
36
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
37
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
38
|
-
* SOFTWARE.
|
|
39
|
-
*/
|
|
40
|
-
const helper_1 = require("@tarojs/helper");
|
|
41
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
42
|
-
const path_1 = __importDefault(require("path"));
|
|
43
|
-
const perf_hooks_1 = require("perf_hooks");
|
|
44
|
-
const webpack_1 = __importDefault(require("webpack"));
|
|
45
|
-
const bundle_1 = require("./bundle");
|
|
46
|
-
const scanImports_1 = require("./scanImports");
|
|
47
|
-
const utils_1 = require("./utils");
|
|
48
|
-
const TaroContainerPlugin_1 = __importDefault(require("./webpack/TaroContainerPlugin"));
|
|
49
|
-
function preBundle(combination) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const prebundleOptions = (0, utils_1.getPrebundleOptions)(combination);
|
|
52
|
-
if (!prebundleOptions.enable)
|
|
53
|
-
return;
|
|
54
|
-
const appPath = combination.appPath;
|
|
55
|
-
const cacheDir = prebundleOptions.cacheDir || (0, utils_1.getCacheDir)(appPath);
|
|
56
|
-
const prebundleCacheDir = path_1.default.resolve(cacheDir, './prebundle');
|
|
57
|
-
const remoteCacheDir = path_1.default.resolve(cacheDir, './remote');
|
|
58
|
-
const metadataPath = path_1.default.join(cacheDir, 'metadata.json');
|
|
59
|
-
const metadata = {};
|
|
60
|
-
const preMetadata = {};
|
|
61
|
-
try {
|
|
62
|
-
if (prebundleOptions.force === true) {
|
|
63
|
-
Object.assign(preMetadata, fs_extra_1.default.readJSONSync(metadataPath));
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (e) { }
|
|
67
|
-
let isUseCache = true;
|
|
68
|
-
const resolveOptions = combination.chain.toConfig().resolve;
|
|
69
|
-
(0, utils_1.createResolve)(appPath, resolveOptions);
|
|
70
|
-
const measure = (0, utils_1.getMeasure)(prebundleOptions.timings);
|
|
71
|
-
/**
|
|
72
|
-
* 找出所有 webpack entry
|
|
73
|
-
* TODO:
|
|
74
|
-
* - 目前只处理了 Page entry,例如原生小程序组件 js entry 等并没有处理
|
|
75
|
-
*/
|
|
76
|
-
const entries = [];
|
|
77
|
-
const config = combination.config;
|
|
78
|
-
const appJsPath = config.entry.app[0];
|
|
79
|
-
const appConfigPath = (0, helper_1.resolveMainFilePath)(`${appJsPath.replace(path_1.default.extname(appJsPath), '')}.config`);
|
|
80
|
-
const appConfig = (0, helper_1.readConfig)(appConfigPath);
|
|
81
|
-
entries.push(appJsPath);
|
|
82
|
-
appConfig.pages.forEach((page) => {
|
|
83
|
-
const pageJsPath = (0, helper_1.resolveMainFilePath)(path_1.default.join(appPath, combination.sourceRoot, page));
|
|
84
|
-
entries.push(pageJsPath);
|
|
85
|
-
});
|
|
86
|
-
// console.log('\nPrebundle entries: \n', ...entries.map(entry => `\t${entry}\n`, '\n'))
|
|
87
|
-
/**
|
|
88
|
-
* 1. 扫描出所有的 node_modules 依赖
|
|
89
|
-
*/
|
|
90
|
-
const SCAN_START = perf_hooks_1.performance.now();
|
|
91
|
-
// plugin-platform 等插件的 runtime 文件入口
|
|
92
|
-
const runtimePath = typeof config.runtimePath === 'string' ? [config.runtimePath] : config.runtimePath || [];
|
|
93
|
-
const deps = yield (0, scanImports_1.scanImports)({
|
|
94
|
-
entries,
|
|
95
|
-
combination,
|
|
96
|
-
include: [
|
|
97
|
-
'@tarojs/taro',
|
|
98
|
-
'@tarojs/runtime',
|
|
99
|
-
...runtimePath,
|
|
100
|
-
...prebundleOptions.include || []
|
|
101
|
-
],
|
|
102
|
-
exclude: [
|
|
103
|
-
// 小程序编译 Host 时需要扫描 @tarojs/components 的 useExports,因此不能被 external
|
|
104
|
-
'@tarojs/components',
|
|
105
|
-
...prebundleOptions.exclude || []
|
|
106
|
-
]
|
|
107
|
-
});
|
|
108
|
-
console.log(helper_1.chalk.cyan('Prebundle dependencies: \n', ...JSON.parse((0, utils_1.formatDepsString)(deps)).map(dep => ` ${dep[0]}\n`)));
|
|
109
|
-
measure('Scan imports duration', SCAN_START);
|
|
110
|
-
/**
|
|
111
|
-
* 2. 使用 esbuild 对 node_modules 依赖进行 bundle
|
|
112
|
-
*/
|
|
113
|
-
const PREBUNDLE_START = perf_hooks_1.performance.now();
|
|
114
|
-
metadata.bundleHash = yield (0, utils_1.getBundleHash)(deps, combination, cacheDir);
|
|
115
|
-
if (preMetadata.bundleHash !== metadata.bundleHash) {
|
|
116
|
-
isUseCache = false;
|
|
117
|
-
const { metafile } = yield (0, bundle_1.bundle)(deps, combination, prebundleCacheDir);
|
|
118
|
-
// 找出 @tarojs/runtime 被 split 切分的 chunk,作为后续 ProvidePlugin 的提供者。
|
|
119
|
-
// 原因是 @tarojs/runtime 里使用了一些如 raf、caf 等全局变量,又因为 esbuild 把
|
|
120
|
-
// @tarojs/runtime split 成 entry 和依赖 chunk 两部分。如果我们把 entry 作为
|
|
121
|
-
// ProvidePlugin 的提供者,依赖 chunk 会被注入 raf、caf,导致循环依赖的问题。所以
|
|
122
|
-
// 这种情况下只能把依赖 chunk 作为 ProvidePlugin 的提供者。
|
|
123
|
-
Object.keys(metafile.outputs).some(key => {
|
|
124
|
-
const output = metafile.outputs[key];
|
|
125
|
-
if (output.entryPoint === 'entry:@tarojs_runtime') {
|
|
126
|
-
const dep = output.imports.find(dep => {
|
|
127
|
-
const depPath = dep.path;
|
|
128
|
-
const depOutput = metafile.outputs[depPath];
|
|
129
|
-
return depOutput.exports.includes('TaroRootElement');
|
|
130
|
-
});
|
|
131
|
-
if (dep) {
|
|
132
|
-
metadata.taroRuntimeBundlePath = path_1.default.join(appPath, dep.path);
|
|
133
|
-
}
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
metadata.taroRuntimeBundlePath = path_1.default.join(appPath, preMetadata.taroRuntimeBundlePath);
|
|
140
|
-
}
|
|
141
|
-
measure('Prebundle duration', PREBUNDLE_START);
|
|
142
|
-
/**
|
|
143
|
-
* 3. 把依赖的 bundle 产物打包成 Webpack Module Federation 格式
|
|
144
|
-
*/
|
|
145
|
-
const BUILD_LIB_START = perf_hooks_1.performance.now();
|
|
146
|
-
const exposes = {};
|
|
147
|
-
const mode = process.env.NODE_ENV === 'production' ? 'production' : 'development';
|
|
148
|
-
const devtool = combination.enableSourceMap && 'hidden-source-map';
|
|
149
|
-
const mainBuildOutput = combination.chain.output.entries();
|
|
150
|
-
const taroRuntimeBundlePath = metadata.taroRuntimeBundlePath || exposes['./@tarojs/runtime'];
|
|
151
|
-
const output = {
|
|
152
|
-
path: remoteCacheDir,
|
|
153
|
-
chunkLoadingGlobal: mainBuildOutput.chunkLoadingGlobal,
|
|
154
|
-
globalObject: mainBuildOutput.globalObject
|
|
155
|
-
};
|
|
156
|
-
metadata.mfHash = (0, utils_1.getMfHash)({
|
|
157
|
-
bundleHash: metadata.bundleHash,
|
|
158
|
-
mode,
|
|
159
|
-
devtool,
|
|
160
|
-
output,
|
|
161
|
-
taroRuntimeBundlePath
|
|
162
|
-
});
|
|
163
|
-
if (preMetadata.mfHash !== metadata.mfHash) {
|
|
164
|
-
isUseCache = false;
|
|
165
|
-
fs_extra_1.default.existsSync(remoteCacheDir) && fs_extra_1.default.emptyDirSync(remoteCacheDir);
|
|
166
|
-
for (const id of deps.keys()) {
|
|
167
|
-
const flatId = (0, utils_1.flattenId)(id);
|
|
168
|
-
exposes[`./${id}`] = path_1.default.join(prebundleCacheDir, `${flatId}.js`);
|
|
169
|
-
}
|
|
170
|
-
metadata.runtimeRequirements = new Set();
|
|
171
|
-
const compiler = (0, webpack_1.default)({
|
|
172
|
-
devtool,
|
|
173
|
-
entry: path_1.default.resolve(__dirname, './webpack/index.js'),
|
|
174
|
-
mode,
|
|
175
|
-
output,
|
|
176
|
-
plugins: [
|
|
177
|
-
new webpack_1.default.container.ModuleFederationPlugin({
|
|
178
|
-
name: 'lib_app',
|
|
179
|
-
filename: 'remoteEntry.js',
|
|
180
|
-
runtime: 'runtime',
|
|
181
|
-
exposes
|
|
182
|
-
}),
|
|
183
|
-
new TaroContainerPlugin_1.default(metadata.runtimeRequirements),
|
|
184
|
-
new webpack_1.default.ProvidePlugin({
|
|
185
|
-
window: [taroRuntimeBundlePath, 'window$1'],
|
|
186
|
-
document: [taroRuntimeBundlePath, 'document$1'],
|
|
187
|
-
navigator: [taroRuntimeBundlePath, 'navigator'],
|
|
188
|
-
requestAnimationFrame: [taroRuntimeBundlePath, 'raf'],
|
|
189
|
-
cancelAnimationFrame: [taroRuntimeBundlePath, 'caf'],
|
|
190
|
-
Element: [taroRuntimeBundlePath, 'TaroElement'],
|
|
191
|
-
SVGElement: [taroRuntimeBundlePath, 'SVGElement'],
|
|
192
|
-
MutationObserver: [taroRuntimeBundlePath, 'MutationObserver']
|
|
193
|
-
})
|
|
194
|
-
],
|
|
195
|
-
cache: {
|
|
196
|
-
type: 'filesystem',
|
|
197
|
-
cacheDirectory: path_1.default.join(cacheDir, 'webpack-cache'),
|
|
198
|
-
buildDependencies: {
|
|
199
|
-
config: Object.values(exposes)
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
});
|
|
203
|
-
metadata.remoteAssets = yield new Promise((resolve, reject) => {
|
|
204
|
-
compiler.run((err, stats) => {
|
|
205
|
-
compiler.close(err2 => {
|
|
206
|
-
var _a;
|
|
207
|
-
if (err || err2)
|
|
208
|
-
return reject(err || err2);
|
|
209
|
-
const { assets } = stats.toJson();
|
|
210
|
-
const remoteAssets = ((_a = assets === null || assets === void 0 ? void 0 : assets.filter(item => item.name !== 'runtime.js')) === null || _a === void 0 ? void 0 : _a.map(item => ({
|
|
211
|
-
name: path_1.default.join('prebundle', item.name)
|
|
212
|
-
}))) || [];
|
|
213
|
-
resolve(remoteAssets);
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
else {
|
|
219
|
-
metadata.runtimeRequirements = new Set(preMetadata.runtimeRequirements);
|
|
220
|
-
metadata.remoteAssets = preMetadata.remoteAssets;
|
|
221
|
-
}
|
|
222
|
-
fs_extra_1.default.copy(remoteCacheDir, path_1.default.join(mainBuildOutput.path, 'prebundle'));
|
|
223
|
-
measure('Build remote lib-app duration', BUILD_LIB_START);
|
|
224
|
-
/**
|
|
225
|
-
* 4. 项目 Host 配置 Module Federation
|
|
226
|
-
*/
|
|
227
|
-
const chain = combination.chain;
|
|
228
|
-
const MfOpt = {
|
|
229
|
-
name: 'main_app',
|
|
230
|
-
remotes: {
|
|
231
|
-
'lib-app': 'lib_app@http://localhost:3000/remoteEntry.js'
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
chain
|
|
235
|
-
.plugin('ModuleFederationPlugin')
|
|
236
|
-
.use(webpack_1.default.container.ModuleFederationPlugin, [MfOpt]);
|
|
237
|
-
chain
|
|
238
|
-
.plugin('TaroContainerReferencePlugin')
|
|
239
|
-
.use(path_1.default.resolve(__dirname, './webpack/TaroContainerReferencePlugin.js'), [
|
|
240
|
-
MfOpt,
|
|
241
|
-
deps,
|
|
242
|
-
metadata.remoteAssets,
|
|
243
|
-
metadata.runtimeRequirements
|
|
244
|
-
]);
|
|
245
|
-
if (!isUseCache) {
|
|
246
|
-
(0, utils_1.commitMeta)(appPath, metadataPath, metadata);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
exports.preBundle = preBundle;
|
|
251
|
-
//# sourceMappingURL=index.mini.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mini.js","sourceRoot":"","sources":["../../src/prebundle/index.mini.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.scanImports = void 0;
|
|
16
|
-
const esbuild_1 = __importDefault(require("esbuild"));
|
|
17
|
-
const fs_1 = __importDefault(require("fs"));
|
|
18
|
-
const path_1 = __importDefault(require("path"));
|
|
19
|
-
const constant_1 = require("./constant");
|
|
20
|
-
const utils_1 = require("./utils");
|
|
21
|
-
function scanImports({ entries, combination, include = [], exclude = [] }) {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const deps = new Map();
|
|
24
|
-
const scanImportsPlugin = getScanImportsPlugin(deps, include, exclude);
|
|
25
|
-
yield Promise.all(entries.map(entry => esbuild_1.default.build({
|
|
26
|
-
absWorkingDir: combination.appPath,
|
|
27
|
-
entryPoints: [entry],
|
|
28
|
-
bundle: true,
|
|
29
|
-
write: false,
|
|
30
|
-
format: 'esm',
|
|
31
|
-
plugins: [
|
|
32
|
-
scanImportsPlugin
|
|
33
|
-
]
|
|
34
|
-
})));
|
|
35
|
-
// 有一些 Webpack loaders 添加的依赖没有办法提前分析出来
|
|
36
|
-
// 可以把它们写进 includes,然后在这里 resolve 后加入到 deps
|
|
37
|
-
const resolve = (0, utils_1.getResolve)();
|
|
38
|
-
yield Promise.all(include.map((item) => __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
const resolvePath = yield resolve(combination.appPath, item);
|
|
40
|
-
deps.set(item, resolvePath);
|
|
41
|
-
})));
|
|
42
|
-
return deps;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
exports.scanImports = scanImports;
|
|
46
|
-
/**
|
|
47
|
-
* 收集 node_modules 依赖
|
|
48
|
-
* Circumstances:
|
|
49
|
-
* 1. import 'xxx.scss', import '../xxx.png' => external
|
|
50
|
-
* 2. import 'xxx.vue', import '../xxx.vue'
|
|
51
|
-
* => collect script: { key: { loader, contents } }
|
|
52
|
-
* => virtual-mode compose of "export * from 'key';""
|
|
53
|
-
* => load virtual-mode and return { loader, contents }
|
|
54
|
-
* 3. import 'xxx', import 'xxx/yyy.ext', import '@xxx/alias'
|
|
55
|
-
* => resolve
|
|
56
|
-
* => path.includes(node_modules) && .js|.jsx|.ts|.tsx => collect + external
|
|
57
|
-
* => .vue => (2)
|
|
58
|
-
* => asserts => (1)
|
|
59
|
-
* => src => return
|
|
60
|
-
* 4. import '../xxx', import '../xxx.ext'
|
|
61
|
-
* => resolve
|
|
62
|
-
* => .vue => (2)
|
|
63
|
-
* => src => return
|
|
64
|
-
*/
|
|
65
|
-
function getScanImportsPlugin(deps, includes, excludes) {
|
|
66
|
-
const resolve = (0, utils_1.getResolve)();
|
|
67
|
-
// for storing vue <script> contents
|
|
68
|
-
const scripts = new Map();
|
|
69
|
-
return {
|
|
70
|
-
name: 'scanImports',
|
|
71
|
-
setup(build) {
|
|
72
|
-
// assets
|
|
73
|
-
build.onResolve(({ filter: constant_1.assetsRE }), utils_1.externalModule);
|
|
74
|
-
// .vue
|
|
75
|
-
build.onLoad({ filter: /\.vue$/, namespace: 'vue' }, ({ path }) => {
|
|
76
|
-
let raw = fs_1.default.readFileSync(path, 'utf-8');
|
|
77
|
-
raw = raw.replace(constant_1.commentRE, '<!---->');
|
|
78
|
-
const regex = constant_1.scriptRE;
|
|
79
|
-
regex.lastIndex = 0;
|
|
80
|
-
let js = '';
|
|
81
|
-
let scriptId = 0;
|
|
82
|
-
let match;
|
|
83
|
-
while ((match = regex.exec(raw))) {
|
|
84
|
-
const [, openTag, content] = match;
|
|
85
|
-
const langMatch = openTag.match(constant_1.langRE);
|
|
86
|
-
const lang = langMatch && (langMatch[1] || langMatch[2] || langMatch[3]);
|
|
87
|
-
let loader = 'js';
|
|
88
|
-
if (lang === 'ts' || lang === 'tsx' || lang === 'jsx') {
|
|
89
|
-
loader = lang;
|
|
90
|
-
}
|
|
91
|
-
if (content.trim()) {
|
|
92
|
-
// append imports in TS to prevent esbuild from removing them
|
|
93
|
-
// since they may be used in the template
|
|
94
|
-
const contents = content +
|
|
95
|
-
(loader.startsWith('ts') ? extractImportPaths(content) : '');
|
|
96
|
-
const key = `${path}?id=${scriptId++}`;
|
|
97
|
-
scripts.set(key, {
|
|
98
|
-
loader,
|
|
99
|
-
contents
|
|
100
|
-
});
|
|
101
|
-
const virtualModulePath = JSON.stringify(constant_1.virtualModulePrefix + key);
|
|
102
|
-
js += `export * from ${virtualModulePath}\n`;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// "export * from" syntax will not re'export "default", so we patch one.
|
|
106
|
-
if (!js.includes('export default')) {
|
|
107
|
-
js += 'export default {}';
|
|
108
|
-
}
|
|
109
|
-
return {
|
|
110
|
-
loader: 'js',
|
|
111
|
-
contents: js
|
|
112
|
-
};
|
|
113
|
-
});
|
|
114
|
-
build.onResolve(({ filter: constant_1.virtualModuleRE }), ({ path }) => {
|
|
115
|
-
return {
|
|
116
|
-
path: path.replace(constant_1.virtualModulePrefix, ''),
|
|
117
|
-
namespace: 'script'
|
|
118
|
-
};
|
|
119
|
-
});
|
|
120
|
-
build.onLoad(({ filter: /.*/, namespace: 'script' }), ({ path }) => {
|
|
121
|
-
return scripts.get(path);
|
|
122
|
-
});
|
|
123
|
-
// bare imports
|
|
124
|
-
build.onResolve({ filter: /^[\w@][^:]/ }, ({ path: id, importer }) => __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
if ((0, utils_1.isExclude)(id, excludes))
|
|
126
|
-
return (0, utils_1.externalModule)({ path: id });
|
|
127
|
-
if (deps.has(id))
|
|
128
|
-
return (0, utils_1.externalModule)({ path: id });
|
|
129
|
-
const resolvedPath = yield resolve(path_1.default.dirname(importer), id);
|
|
130
|
-
if (resolvedPath.includes('node_modules') || includes.includes(id)) {
|
|
131
|
-
if ((0, utils_1.canBeOptimized)(resolvedPath)) {
|
|
132
|
-
deps.set(id, resolvedPath);
|
|
133
|
-
}
|
|
134
|
-
return (0, utils_1.externalModule)({ path: id });
|
|
135
|
-
}
|
|
136
|
-
else if ((0, utils_1.canBeScaned)(resolvedPath)) {
|
|
137
|
-
return {
|
|
138
|
-
path: resolvedPath,
|
|
139
|
-
namespace: 'vue'
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
else if (constant_1.assetsRE.test(resolvedPath)) {
|
|
143
|
-
(0, utils_1.externalModule)({ path: id });
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
return {
|
|
147
|
-
path: resolvedPath
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
}));
|
|
151
|
-
// catch all
|
|
152
|
-
build.onResolve({ filter: /.*/ }, ({ path: id, importer }) => __awaiter(this, void 0, void 0, function* () {
|
|
153
|
-
const resolvedPath = yield resolve(path_1.default.dirname(importer), id);
|
|
154
|
-
const namespace = (0, utils_1.canBeScaned)(resolvedPath) ? 'vue' : undefined;
|
|
155
|
-
return {
|
|
156
|
-
path: resolvedPath,
|
|
157
|
-
namespace
|
|
158
|
-
};
|
|
159
|
-
}));
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* when using TS + (Vue + `<script setup>`) or Svelte, imports may seem
|
|
165
|
-
* unused to esbuild and dropped in the build output, which prevents
|
|
166
|
-
* esbuild from crawling further.
|
|
167
|
-
* the solution is to add `import 'x'` for every source to force
|
|
168
|
-
* esbuild to keep crawling due to potential side effects.
|
|
169
|
-
*/
|
|
170
|
-
function extractImportPaths(code) {
|
|
171
|
-
// empty singleline & multiline comments to avoid matching comments
|
|
172
|
-
code = code
|
|
173
|
-
.replace(constant_1.multilineCommentsRE, '/* */')
|
|
174
|
-
.replace(constant_1.singlelineCommentsRE, '');
|
|
175
|
-
let js = '';
|
|
176
|
-
let m;
|
|
177
|
-
while ((m = constant_1.importsRE.exec(code)) != null) {
|
|
178
|
-
// This is necessary to avoid infinite loops with zero-width matches
|
|
179
|
-
if (m.index === constant_1.importsRE.lastIndex) {
|
|
180
|
-
constant_1.importsRE.lastIndex++;
|
|
181
|
-
}
|
|
182
|
-
js += `\nimport ${m[1]}`;
|
|
183
|
-
}
|
|
184
|
-
return js;
|
|
185
|
-
}
|
|
186
|
-
//# sourceMappingURL=scanImports.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanImports.js","sourceRoot":"","sources":["../../src/prebundle/scanImports.ts"],"names":[],"mappings":"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"}
|
package/dist/prebundle/utils.js
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.getMeasure = exports.getPrebundleOptions = exports.commitMeta = exports.getMfHash = exports.formatDepsString = exports.getBundleHash = exports.getHash = exports.isExclude = exports.getDefines = exports.getCacheDir = exports.flattenId = exports.canBeScaned = exports.canBeOptimized = exports.externalModule = exports.getResolve = exports.createResolve = void 0;
|
|
16
|
-
const helper_1 = require("@tarojs/helper");
|
|
17
|
-
const shared_1 = require("@tarojs/shared");
|
|
18
|
-
const crypto_1 = require("crypto");
|
|
19
|
-
const enhanced_resolve_1 = __importDefault(require("enhanced-resolve"));
|
|
20
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
21
|
-
const path_1 = __importDefault(require("path"));
|
|
22
|
-
const perf_hooks_1 = require("perf_hooks");
|
|
23
|
-
let resolve;
|
|
24
|
-
function createResolve(appPath, resolveOptions) {
|
|
25
|
-
const defaultResolveOptions = {
|
|
26
|
-
conditionNames: ['require', 'import', 'module', 'webpack', 'development', 'browser'],
|
|
27
|
-
aliasFields: ['browser'],
|
|
28
|
-
cache: true,
|
|
29
|
-
mainFiles: ['index'],
|
|
30
|
-
exportsFields: ['exports'],
|
|
31
|
-
roots: appPath
|
|
32
|
-
};
|
|
33
|
-
const resolver = enhanced_resolve_1.default.create(Object.assign(Object.assign({}, defaultResolveOptions), resolveOptions));
|
|
34
|
-
resolve = function (importer, request) {
|
|
35
|
-
return new Promise((resolve, reject) => {
|
|
36
|
-
resolver({}, importer, request, {}, (err, resolvedPath) => {
|
|
37
|
-
if (err)
|
|
38
|
-
return reject(err);
|
|
39
|
-
resolve(resolvedPath);
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
exports.createResolve = createResolve;
|
|
45
|
-
function getResolve() {
|
|
46
|
-
return resolve;
|
|
47
|
-
}
|
|
48
|
-
exports.getResolve = getResolve;
|
|
49
|
-
function externalModule({ path }) {
|
|
50
|
-
return {
|
|
51
|
-
path,
|
|
52
|
-
external: true
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
exports.externalModule = externalModule;
|
|
56
|
-
function canBeOptimized(path) {
|
|
57
|
-
return /\.[jt]sx?$/.test(path);
|
|
58
|
-
}
|
|
59
|
-
exports.canBeOptimized = canBeOptimized;
|
|
60
|
-
function canBeScaned(path) {
|
|
61
|
-
return /\.vue/.test(path);
|
|
62
|
-
}
|
|
63
|
-
exports.canBeScaned = canBeScaned;
|
|
64
|
-
function flattenId(id) {
|
|
65
|
-
return id.replace(/(\s*>\s*)/g, '__').replace(/[/.:]/g, '_');
|
|
66
|
-
}
|
|
67
|
-
exports.flattenId = flattenId;
|
|
68
|
-
function getCacheDir(appPath) {
|
|
69
|
-
return path_1.default.resolve(appPath, './node_modules/.taro');
|
|
70
|
-
}
|
|
71
|
-
exports.getCacheDir = getCacheDir;
|
|
72
|
-
function getDefines(combination) {
|
|
73
|
-
let defines;
|
|
74
|
-
combination.chain.plugin('definePlugin').tap(args => {
|
|
75
|
-
defines = args[0];
|
|
76
|
-
return args;
|
|
77
|
-
});
|
|
78
|
-
return defines;
|
|
79
|
-
}
|
|
80
|
-
exports.getDefines = getDefines;
|
|
81
|
-
function isExclude(id, excludes) {
|
|
82
|
-
return Boolean(excludes.find(item => {
|
|
83
|
-
const dollarTailRE = /\$$/;
|
|
84
|
-
if (dollarTailRE.test(item)) {
|
|
85
|
-
// 全路径匹配
|
|
86
|
-
item = item.replace(dollarTailRE, '');
|
|
87
|
-
if (item === id)
|
|
88
|
-
return true;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
if (item === id || id.startsWith(item + '/'))
|
|
92
|
-
return true;
|
|
93
|
-
}
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
exports.isExclude = isExclude;
|
|
97
|
-
function getHash(content) {
|
|
98
|
-
return (0, crypto_1.createHash)('sha256').update(content).digest('hex').substring(0, 8);
|
|
99
|
-
}
|
|
100
|
-
exports.getHash = getHash;
|
|
101
|
-
function getBundleHash(deps, combination, cacheDir) {
|
|
102
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
103
|
-
const appPath = combination.appPath;
|
|
104
|
-
const defines = getDefines(combination);
|
|
105
|
-
const lockfiles = ['package-lock.json', 'yarn.lock', 'pnpm-lock.yaml'];
|
|
106
|
-
const lockfilesContents = yield Promise.all(lockfiles.map(item => {
|
|
107
|
-
return new Promise(resolve => {
|
|
108
|
-
fs_extra_1.default.readFile(path_1.default.join(appPath, item))
|
|
109
|
-
.then(content => resolve(content.toString()))
|
|
110
|
-
.catch(() => resolve(''));
|
|
111
|
-
});
|
|
112
|
-
}));
|
|
113
|
-
return getHash(formatDepsString(deps) +
|
|
114
|
-
lockfilesContents.join('\n') +
|
|
115
|
-
JSON.stringify(defines) +
|
|
116
|
-
cacheDir);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
exports.getBundleHash = getBundleHash;
|
|
120
|
-
function formatDepsString(deps) {
|
|
121
|
-
const list = Array.from(deps.entries());
|
|
122
|
-
list.sort((a, b) => a[0].localeCompare(b[0]));
|
|
123
|
-
return JSON.stringify(list);
|
|
124
|
-
}
|
|
125
|
-
exports.formatDepsString = formatDepsString;
|
|
126
|
-
function getMfHash(obj) {
|
|
127
|
-
return getHash(JSON.stringify(obj));
|
|
128
|
-
}
|
|
129
|
-
exports.getMfHash = getMfHash;
|
|
130
|
-
function commitMeta(appPath, metadataPath, metadata) {
|
|
131
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
-
// Todo: 改为相对路径
|
|
133
|
-
yield fs_extra_1.default.writeJSON(metadataPath, metadata, {
|
|
134
|
-
spaces: 2,
|
|
135
|
-
replacer(key, value) {
|
|
136
|
-
if (value instanceof Set) {
|
|
137
|
-
return Array.from(value);
|
|
138
|
-
}
|
|
139
|
-
if (key === 'taroRuntimeBundlePath') {
|
|
140
|
-
return path_1.default.relative(appPath, value);
|
|
141
|
-
}
|
|
142
|
-
return value;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
exports.commitMeta = commitMeta;
|
|
148
|
-
function getPrebundleOptions(combination) {
|
|
149
|
-
const config = combination.config;
|
|
150
|
-
const defaultOptions = {
|
|
151
|
-
enable: process.env.NODE_ENV !== 'production',
|
|
152
|
-
timings: false,
|
|
153
|
-
force: false,
|
|
154
|
-
include: [],
|
|
155
|
-
exclude: []
|
|
156
|
-
};
|
|
157
|
-
if ((0, shared_1.isObject)(config.compiler)) {
|
|
158
|
-
return (0, helper_1.recursiveMerge)({}, defaultOptions, config.compiler.prebundle);
|
|
159
|
-
}
|
|
160
|
-
return defaultOptions;
|
|
161
|
-
}
|
|
162
|
-
exports.getPrebundleOptions = getPrebundleOptions;
|
|
163
|
-
function getMeasure(isLogTiming) {
|
|
164
|
-
return function (name, start) {
|
|
165
|
-
if (isLogTiming) {
|
|
166
|
-
const now = perf_hooks_1.performance.now();
|
|
167
|
-
const duration = now - start;
|
|
168
|
-
console.log(helper_1.chalk.cyan(`${name}: ${Math.round(duration)}ms\n`));
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
exports.getMeasure = getMeasure;
|
|
173
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/prebundle/utils.ts"],"names":[],"mappings":"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"}
|