@tarojs/webpack5-runner 3.5.0-alpha.0
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/README.md +3 -0
- package/dist/dependencies/TaroSingleEntryDependency.js +18 -0
- package/dist/dependencies/TaroSingleEntryDependency.js.map +1 -0
- package/dist/index.h5.js +224 -0
- package/dist/index.h5.js.map +1 -0
- package/dist/index.mini.js +69 -0
- package/dist/index.mini.js.map +1 -0
- package/dist/loaders/miniTemplateLoader.js +63 -0
- package/dist/loaders/miniTemplateLoader.js.map +1 -0
- package/dist/plugins/BuildNativePlugin.js +124 -0
- package/dist/plugins/BuildNativePlugin.js.map +1 -0
- package/dist/plugins/H5Plugin.js +91 -0
- package/dist/plugins/H5Plugin.js.map +1 -0
- package/dist/plugins/MiniPlugin.js +1027 -0
- package/dist/plugins/MiniPlugin.js.map +1 -0
- package/dist/plugins/MiniSplitChunksPlugin.js +678 -0
- package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -0
- package/dist/plugins/TaroLoadChunksPlugin.js +176 -0
- package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -0
- package/dist/plugins/TaroNormalModule.js +51 -0
- package/dist/plugins/TaroNormalModule.js.map +1 -0
- package/dist/plugins/TaroNormalModulesPlugin.js +63 -0
- package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -0
- package/dist/plugins/TaroSingleEntryPlugin.js +26 -0
- package/dist/plugins/TaroSingleEntryPlugin.js.map +1 -0
- package/dist/plugins/WebpackBarPlugin.js +26 -0
- package/dist/plugins/WebpackBarPlugin.js.map +1 -0
- package/dist/postcss/postcss.h5.js +70 -0
- package/dist/postcss/postcss.h5.js.map +1 -0
- package/dist/postcss/postcss.mini.js +75 -0
- package/dist/postcss/postcss.mini.js.map +1 -0
- package/dist/prebundle/bundle.js +167 -0
- package/dist/prebundle/bundle.js.map +1 -0
- package/dist/prebundle/constant.js +60 -0
- package/dist/prebundle/constant.js.map +1 -0
- package/dist/prebundle/index.js +234 -0
- package/dist/prebundle/index.js.map +1 -0
- package/dist/prebundle/scanImports.js +193 -0
- package/dist/prebundle/scanImports.js.map +1 -0
- package/dist/prebundle/utils.js +170 -0
- package/dist/prebundle/utils.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerEntryModule.js +76 -0
- package/dist/prebundle/webpack/TaroContainerEntryModule.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerPlugin.js +75 -0
- package/dist/prebundle/webpack/TaroContainerPlugin.js.map +1 -0
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js +124 -0
- package/dist/prebundle/webpack/TaroContainerReferencePlugin.js.map +1 -0
- package/dist/prebundle/webpack/index.js +1 -0
- package/dist/prebundle/webpack/index.js.map +1 -0
- package/dist/prerender/prerender.js +228 -0
- package/dist/prerender/prerender.js.map +1 -0
- package/dist/template/comp.js +4 -0
- package/dist/template/component.js +10 -0
- package/dist/template/component.js.map +1 -0
- package/dist/template/custom-wrapper.js +7 -0
- package/dist/template/custom-wrapper.js.map +1 -0
- package/dist/utils/H5AppInstance.js +110 -0
- package/dist/utils/H5AppInstance.js.map +1 -0
- package/dist/utils/index.js +53 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logHelper.js +153 -0
- package/dist/utils/logHelper.js.map +1 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/webpack.js +12 -0
- package/dist/utils/webpack.js.map +1 -0
- package/dist/webpack/BaseConfig.js +155 -0
- package/dist/webpack/BaseConfig.js.map +1 -0
- package/dist/webpack/BuildNativePlugin.js +57 -0
- package/dist/webpack/BuildNativePlugin.js.map +1 -0
- package/dist/webpack/Combination.js +69 -0
- package/dist/webpack/Combination.js.map +1 -0
- package/dist/webpack/H5BaseConfig.js +30 -0
- package/dist/webpack/H5BaseConfig.js.map +1 -0
- package/dist/webpack/H5Combination.js +106 -0
- package/dist/webpack/H5Combination.js.map +1 -0
- package/dist/webpack/H5WebpackModule.js +261 -0
- package/dist/webpack/H5WebpackModule.js.map +1 -0
- package/dist/webpack/H5WebpackPlugin.js +85 -0
- package/dist/webpack/H5WebpackPlugin.js.map +1 -0
- package/dist/webpack/MiniBaseConfig.js +73 -0
- package/dist/webpack/MiniBaseConfig.js.map +1 -0
- package/dist/webpack/MiniCombination.js +115 -0
- package/dist/webpack/MiniCombination.js.map +1 -0
- package/dist/webpack/MiniWebpackModule.js +204 -0
- package/dist/webpack/MiniWebpackModule.js.map +1 -0
- package/dist/webpack/MiniWebpackPlugin.js +154 -0
- package/dist/webpack/MiniWebpackPlugin.js.map +1 -0
- package/dist/webpack/WebpackModule.js +174 -0
- package/dist/webpack/WebpackModule.js.map +1 -0
- package/dist/webpack/WebpackPlugin.js +84 -0
- package/dist/webpack/WebpackPlugin.js.map +1 -0
- package/index.js +7 -0
- package/package.json +103 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiniWebpackModule = void 0;
|
|
4
|
+
const helper_1 = require("@tarojs/helper");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const lodash_1 = require("lodash");
|
|
7
|
+
const WebpackModule_1 = require("./WebpackModule");
|
|
8
|
+
const postcss_mini_1 = require("../postcss/postcss.mini");
|
|
9
|
+
class MiniWebpackModule {
|
|
10
|
+
constructor(combination) {
|
|
11
|
+
this.combination = combination;
|
|
12
|
+
}
|
|
13
|
+
getModules() {
|
|
14
|
+
const { config, sourceRoot, fileType } = this.combination;
|
|
15
|
+
const { buildAdapter, sassLoaderOption, lessLoaderOption, stylusLoaderOption } = config;
|
|
16
|
+
const { postcssOption, postcssUrlOption, cssModuleOption } = this.parsePostCSSOptions();
|
|
17
|
+
const cssLoaders = this.getCSSLoaders(postcssOption, cssModuleOption);
|
|
18
|
+
const resolveUrlLoader = WebpackModule_1.WebpackModule.getResolveUrlLoader();
|
|
19
|
+
const sassLoader = WebpackModule_1.WebpackModule.getSassLoader(sassLoaderOption);
|
|
20
|
+
const scssLoader = WebpackModule_1.WebpackModule.getScssLoader(sassLoaderOption);
|
|
21
|
+
const lessLoader = WebpackModule_1.WebpackModule.getLessLoader(lessLoaderOption);
|
|
22
|
+
const stylusLoader = WebpackModule_1.WebpackModule.getStylusLoader(stylusLoaderOption);
|
|
23
|
+
const rule = {
|
|
24
|
+
sass: {
|
|
25
|
+
test: helper_1.REG_SASS_SASS,
|
|
26
|
+
oneOf: this.addCSSLoader(cssLoaders, resolveUrlLoader, sassLoader)
|
|
27
|
+
},
|
|
28
|
+
scss: {
|
|
29
|
+
test: helper_1.REG_SASS_SCSS,
|
|
30
|
+
oneOf: this.addCSSLoader(cssLoaders, resolveUrlLoader, scssLoader)
|
|
31
|
+
},
|
|
32
|
+
less: {
|
|
33
|
+
test: helper_1.REG_LESS,
|
|
34
|
+
oneOf: this.addCSSLoader(cssLoaders, lessLoader)
|
|
35
|
+
},
|
|
36
|
+
stylus: {
|
|
37
|
+
test: helper_1.REG_STYLUS,
|
|
38
|
+
oneOf: this.addCSSLoader(cssLoaders, stylusLoader)
|
|
39
|
+
},
|
|
40
|
+
nomorlCss: {
|
|
41
|
+
test: helper_1.REG_CSS,
|
|
42
|
+
oneOf: cssLoaders
|
|
43
|
+
},
|
|
44
|
+
script: this.getScriptRule(),
|
|
45
|
+
template: {
|
|
46
|
+
test: helper_1.REG_TEMPLATE,
|
|
47
|
+
type: 'asset/resource',
|
|
48
|
+
generator: {
|
|
49
|
+
filename({ filename }) {
|
|
50
|
+
const extname = path.extname(filename);
|
|
51
|
+
return filename.replace(sourceRoot + '/', '').replace(extname, fileType.templ);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
use: [WebpackModule_1.WebpackModule.getLoader(path.resolve(__dirname, '../loaders/miniTemplateLoader'), {
|
|
55
|
+
buildAdapter
|
|
56
|
+
})]
|
|
57
|
+
},
|
|
58
|
+
media: this.getMediaRule(postcssUrlOption),
|
|
59
|
+
font: this.getFontRule(postcssUrlOption),
|
|
60
|
+
image: this.getImageRule(postcssUrlOption)
|
|
61
|
+
};
|
|
62
|
+
return { rule };
|
|
63
|
+
}
|
|
64
|
+
addCSSLoader(cssLoaders, ...loader) {
|
|
65
|
+
const cssLoadersCopy = lodash_1.cloneDeep(cssLoaders);
|
|
66
|
+
cssLoadersCopy.forEach(item => {
|
|
67
|
+
if (item.use) {
|
|
68
|
+
item.use = [...item.use, ...loader];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
return cssLoadersCopy;
|
|
72
|
+
}
|
|
73
|
+
getCSSLoaders(postcssOption, cssModuleOption) {
|
|
74
|
+
const { appPath, config } = this.combination;
|
|
75
|
+
const { designWidth = 750, deviceRatio, cssLoaderOption } = config;
|
|
76
|
+
const extractCSSLoader = WebpackModule_1.WebpackModule.getExtractCSSLoader();
|
|
77
|
+
const cssLoader = WebpackModule_1.WebpackModule.getCSSLoader(cssLoaderOption);
|
|
78
|
+
const postCSSLoader = WebpackModule_1.WebpackModule.getPostCSSLoader({
|
|
79
|
+
postcssOptions: {
|
|
80
|
+
plugins: postcss_mini_1.getPostcssPlugins(appPath, {
|
|
81
|
+
designWidth,
|
|
82
|
+
deviceRatio,
|
|
83
|
+
postcssOption
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
const cssLoaders = [{
|
|
88
|
+
use: [
|
|
89
|
+
extractCSSLoader,
|
|
90
|
+
cssLoader,
|
|
91
|
+
postCSSLoader
|
|
92
|
+
]
|
|
93
|
+
}];
|
|
94
|
+
if (cssModuleOption.enable) {
|
|
95
|
+
const cssModuleOptionConfig = helper_1.recursiveMerge({}, {
|
|
96
|
+
namingPattern: 'module',
|
|
97
|
+
generateScopedName: '[name]__[local]___[hash:base64:5]'
|
|
98
|
+
}, cssModuleOption.config);
|
|
99
|
+
const cssLoaderWithModule = WebpackModule_1.WebpackModule.getCSSLoaderWithModule(cssModuleOptionConfig, cssLoaderOption);
|
|
100
|
+
const styleModuleReg = /(.*\.module).*\.(css|s[ac]ss|less|styl)\b/;
|
|
101
|
+
const styleGlobalReg = /(.*\.global).*\.(css|s[ac]ss|less|styl)\b/;
|
|
102
|
+
let cssModuleCondition;
|
|
103
|
+
if (cssModuleOptionConfig.namingPattern === 'module') {
|
|
104
|
+
/* 不排除 node_modules 内的样式 */
|
|
105
|
+
cssModuleCondition = styleModuleReg;
|
|
106
|
+
// for vue
|
|
107
|
+
cssLoaders.unshift({
|
|
108
|
+
resourceQuery: /module=/,
|
|
109
|
+
use: [
|
|
110
|
+
extractCSSLoader,
|
|
111
|
+
cssLoaderWithModule,
|
|
112
|
+
postCSSLoader
|
|
113
|
+
]
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
cssModuleCondition = {
|
|
118
|
+
and: [
|
|
119
|
+
{ not: styleGlobalReg },
|
|
120
|
+
{ not: helper_1.isNodeModule }
|
|
121
|
+
]
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
cssLoaders.unshift({
|
|
125
|
+
include: [cssModuleCondition],
|
|
126
|
+
use: [
|
|
127
|
+
extractCSSLoader,
|
|
128
|
+
cssLoaderWithModule,
|
|
129
|
+
postCSSLoader
|
|
130
|
+
]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return cssLoaders;
|
|
134
|
+
}
|
|
135
|
+
getScriptRule() {
|
|
136
|
+
const { sourceDir } = this.combination;
|
|
137
|
+
const { compile = {} } = this.combination.config;
|
|
138
|
+
const rule = WebpackModule_1.WebpackModule.getScriptRule();
|
|
139
|
+
if (compile.exclude && compile.exclude.length) {
|
|
140
|
+
rule.exclude = [
|
|
141
|
+
...compile.exclude,
|
|
142
|
+
filename => /css-loader/.test(filename) || (/node_modules/.test(filename) && !(/taro/.test(filename)))
|
|
143
|
+
];
|
|
144
|
+
}
|
|
145
|
+
else if (compile.include && compile.include.length) {
|
|
146
|
+
rule.include = [
|
|
147
|
+
...compile.include,
|
|
148
|
+
sourceDir,
|
|
149
|
+
filename => /taro/.test(filename)
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
rule.exclude = [filename => /css-loader/.test(filename) || (/node_modules/.test(filename) && !(/taro/.test(filename)))];
|
|
154
|
+
}
|
|
155
|
+
return rule;
|
|
156
|
+
}
|
|
157
|
+
parsePostCSSOptions() {
|
|
158
|
+
const { postcss: postcssOption = {} } = this.combination.config;
|
|
159
|
+
const defaultUrlOption = {
|
|
160
|
+
enable: true,
|
|
161
|
+
config: {
|
|
162
|
+
limit: 10 * 1024 // limit 10k base on document
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
const defaultCssModuleOption = {
|
|
166
|
+
enable: false,
|
|
167
|
+
config: {
|
|
168
|
+
namingPattern: 'global',
|
|
169
|
+
generateScopedName: '[name]__[local]___[hash:base64:5]'
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const urlOptions = helper_1.recursiveMerge({}, defaultUrlOption, postcssOption.url);
|
|
173
|
+
let postcssUrlOption = {};
|
|
174
|
+
if (urlOptions.enable) {
|
|
175
|
+
postcssUrlOption = urlOptions.config;
|
|
176
|
+
}
|
|
177
|
+
const cssModuleOption = helper_1.recursiveMerge({}, defaultCssModuleOption, postcssOption.cssModules);
|
|
178
|
+
return {
|
|
179
|
+
postcssOption,
|
|
180
|
+
postcssUrlOption,
|
|
181
|
+
cssModuleOption
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
getMediaRule(postcssOptions) {
|
|
185
|
+
const sourceRoot = this.combination.sourceRoot;
|
|
186
|
+
const { mediaUrlLoaderOption } = this.combination.config;
|
|
187
|
+
const options = Object.assign({}, postcssOptions, mediaUrlLoaderOption);
|
|
188
|
+
return WebpackModule_1.WebpackModule.getMediaRule(sourceRoot, options);
|
|
189
|
+
}
|
|
190
|
+
getFontRule(postcssOptions) {
|
|
191
|
+
const sourceRoot = this.combination.sourceRoot;
|
|
192
|
+
const { fontUrlLoaderOption } = this.combination.config;
|
|
193
|
+
const options = Object.assign({}, postcssOptions, fontUrlLoaderOption);
|
|
194
|
+
return WebpackModule_1.WebpackModule.getFontRule(sourceRoot, options);
|
|
195
|
+
}
|
|
196
|
+
getImageRule(postcssOptions) {
|
|
197
|
+
const sourceRoot = this.combination.sourceRoot;
|
|
198
|
+
const { imageUrlLoaderOption } = this.combination.config;
|
|
199
|
+
const options = Object.assign({}, postcssOptions, imageUrlLoaderOption);
|
|
200
|
+
return WebpackModule_1.WebpackModule.getImageRule(sourceRoot, options);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.MiniWebpackModule = MiniWebpackModule;
|
|
204
|
+
//# sourceMappingURL=MiniWebpackModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiniWebpackModule.js","sourceRoot":"","sources":["../../src/webpack/MiniWebpackModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiniWebpackPlugin = void 0;
|
|
4
|
+
const shared_1 = require("@tarojs/shared");
|
|
5
|
+
const helper_1 = require("@tarojs/helper");
|
|
6
|
+
const WebpackPlugin_1 = require("./WebpackPlugin");
|
|
7
|
+
const MiniPlugin_1 = require("../plugins/MiniPlugin");
|
|
8
|
+
const BuildNativePlugin_1 = require("../plugins/BuildNativePlugin");
|
|
9
|
+
const MiniSplitChunksPlugin_1 = require("../plugins/MiniSplitChunksPlugin");
|
|
10
|
+
class MiniWebpackPlugin {
|
|
11
|
+
constructor(combination) {
|
|
12
|
+
this.combination = combination;
|
|
13
|
+
}
|
|
14
|
+
getPlugins() {
|
|
15
|
+
const plugins = {
|
|
16
|
+
providerPlugin: this.getProviderPlugin(),
|
|
17
|
+
definePlugin: this.getDefinePlugin(),
|
|
18
|
+
miniCssExtractPlugin: this.getMiniCssExtractPlugin()
|
|
19
|
+
};
|
|
20
|
+
const copyWebpackPlugin = this.getCopyWebpackPlugin();
|
|
21
|
+
if (copyWebpackPlugin)
|
|
22
|
+
plugins.copyWebpackPlugin = copyWebpackPlugin;
|
|
23
|
+
/** 需要在 MiniPlugin 前,否则无法获取 entry 地址 */
|
|
24
|
+
const miniSplitChunksPlugin = this.getMiniSplitChunksPlugin();
|
|
25
|
+
if (miniSplitChunksPlugin)
|
|
26
|
+
plugins.miniSplitChunksPlugin = miniSplitChunksPlugin;
|
|
27
|
+
const definePluginOptions = plugins.definePlugin.args[0];
|
|
28
|
+
const mainPlugin = this.getMainPlugin(definePluginOptions);
|
|
29
|
+
plugins.miniPlugin = mainPlugin;
|
|
30
|
+
return plugins;
|
|
31
|
+
}
|
|
32
|
+
getProviderPlugin() {
|
|
33
|
+
return WebpackPlugin_1.WebpackPlugin.getProviderPlugin({
|
|
34
|
+
window: ['@tarojs/runtime', 'window'],
|
|
35
|
+
document: ['@tarojs/runtime', 'document'],
|
|
36
|
+
navigator: ['@tarojs/runtime', 'navigator'],
|
|
37
|
+
requestAnimationFrame: ['@tarojs/runtime', 'requestAnimationFrame'],
|
|
38
|
+
cancelAnimationFrame: ['@tarojs/runtime', 'cancelAnimationFrame'],
|
|
39
|
+
Element: ['@tarojs/runtime', 'TaroElement'],
|
|
40
|
+
SVGElement: ['@tarojs/runtime', 'SVGElement'],
|
|
41
|
+
MutationObserver: ['@tarojs/runtime', 'MutationObserver']
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
getDefinePlugin() {
|
|
45
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
46
|
+
const { env = {}, runtime = {}, defineConstants = {}, framework = 'react', buildAdapter = helper_1.PLATFORMS.WEAPP } = this.combination.config;
|
|
47
|
+
env.FRAMEWORK = JSON.stringify(framework);
|
|
48
|
+
env.TARO_ENV = JSON.stringify(buildAdapter);
|
|
49
|
+
const envConstants = Object.keys(env).reduce((target, key) => {
|
|
50
|
+
target[`process.env.${key}`] = env[key];
|
|
51
|
+
return target;
|
|
52
|
+
}, {});
|
|
53
|
+
const runtimeConstants = {
|
|
54
|
+
ENABLE_INNER_HTML: (_a = runtime.enableInnerHTML) !== null && _a !== void 0 ? _a : true,
|
|
55
|
+
ENABLE_ADJACENT_HTML: (_b = runtime.enableAdjacentHTML) !== null && _b !== void 0 ? _b : false,
|
|
56
|
+
ENABLE_SIZE_APIS: (_c = runtime.enableSizeAPIs) !== null && _c !== void 0 ? _c : false,
|
|
57
|
+
ENABLE_TEMPLATE_CONTENT: (_d = runtime.enableTemplateContent) !== null && _d !== void 0 ? _d : false,
|
|
58
|
+
ENABLE_CLONE_NODE: (_e = runtime.enableCloneNode) !== null && _e !== void 0 ? _e : false,
|
|
59
|
+
ENABLE_CONTAINS: (_f = runtime.enableContains) !== null && _f !== void 0 ? _f : false,
|
|
60
|
+
ENABLE_MUTATION_OBSERVER: (_g = runtime.enableMutationObserver) !== null && _g !== void 0 ? _g : false
|
|
61
|
+
};
|
|
62
|
+
return WebpackPlugin_1.WebpackPlugin.getDefinePlugin([envConstants, defineConstants, runtimeConstants]);
|
|
63
|
+
}
|
|
64
|
+
getCopyWebpackPlugin() {
|
|
65
|
+
var _a;
|
|
66
|
+
const combination = this.combination;
|
|
67
|
+
const { appPath, config, isBuildPlugin } = combination;
|
|
68
|
+
let { copy } = config;
|
|
69
|
+
let copyWebpackPlugin;
|
|
70
|
+
if (isBuildPlugin) {
|
|
71
|
+
copy || (copy = {});
|
|
72
|
+
(_a = copy).patterns || (_a.patterns = []);
|
|
73
|
+
copy.patterns.push(combination.buildNativePlugin.getCopyPattern());
|
|
74
|
+
}
|
|
75
|
+
if (copy === null || copy === void 0 ? void 0 : copy.patterns.length) {
|
|
76
|
+
copyWebpackPlugin = WebpackPlugin_1.WebpackPlugin.getCopyWebpackPlugin(appPath, copy);
|
|
77
|
+
}
|
|
78
|
+
return copyWebpackPlugin;
|
|
79
|
+
}
|
|
80
|
+
getMiniCssExtractPlugin() {
|
|
81
|
+
const { fileType } = this.combination;
|
|
82
|
+
const { miniCssExtractPluginOption = {} } = this.combination.config;
|
|
83
|
+
const args = Object.assign({
|
|
84
|
+
filename: `[name]${fileType.style}`,
|
|
85
|
+
chunkFilename: `[name]${fileType.style}`
|
|
86
|
+
}, miniCssExtractPluginOption);
|
|
87
|
+
return WebpackPlugin_1.WebpackPlugin.getMiniCssExtractPlugin(args);
|
|
88
|
+
}
|
|
89
|
+
getMiniSplitChunksPlugin() {
|
|
90
|
+
const { fileType } = this.combination;
|
|
91
|
+
const { optimizeMainPackage } = this.combination;
|
|
92
|
+
let miniSplitChunksPlugin;
|
|
93
|
+
if (optimizeMainPackage === null || optimizeMainPackage === void 0 ? void 0 : optimizeMainPackage.enable) {
|
|
94
|
+
miniSplitChunksPlugin = WebpackPlugin_1.WebpackPlugin.getPlugin(MiniSplitChunksPlugin_1.default, [{
|
|
95
|
+
exclude: optimizeMainPackage.exclude,
|
|
96
|
+
fileType
|
|
97
|
+
}]);
|
|
98
|
+
}
|
|
99
|
+
return miniSplitChunksPlugin;
|
|
100
|
+
}
|
|
101
|
+
getMainPlugin(definePluginOptions) {
|
|
102
|
+
const { sourceDir, outputDir, isBuildNativeComp, isBuildPlugin, buildNativePlugin, config, fileType } = this.combination;
|
|
103
|
+
const plugin = isBuildNativeComp ? BuildNativePlugin_1.default : MiniPlugin_1.default;
|
|
104
|
+
const options = {
|
|
105
|
+
/** paths */
|
|
106
|
+
sourceDir,
|
|
107
|
+
outputDir,
|
|
108
|
+
runtimePath: config.runtimePath,
|
|
109
|
+
nodeModulesPath: config.nodeModulesPath,
|
|
110
|
+
/** config & message */
|
|
111
|
+
framework: config.framework || 'react',
|
|
112
|
+
fileType,
|
|
113
|
+
template: config.template,
|
|
114
|
+
commonChunks: this.getCommonChunks(),
|
|
115
|
+
designWidth: config.designWidth || 750,
|
|
116
|
+
deviceRatio: config.deviceRatio,
|
|
117
|
+
baseLevel: config.baseLevel || 16,
|
|
118
|
+
minifyXML: config.minifyXML || {},
|
|
119
|
+
alias: config.alias || {},
|
|
120
|
+
constantsReplaceList: definePluginOptions,
|
|
121
|
+
/** building mode */
|
|
122
|
+
hot: config.hot || false,
|
|
123
|
+
prerender: config.prerender,
|
|
124
|
+
blended: config.blended,
|
|
125
|
+
isBuildNativeComp,
|
|
126
|
+
isBuildPlugin: isBuildPlugin,
|
|
127
|
+
pluginConfig: buildNativePlugin === null || buildNativePlugin === void 0 ? void 0 : buildNativePlugin.pluginConfig,
|
|
128
|
+
pluginMainEntry: buildNativePlugin === null || buildNativePlugin === void 0 ? void 0 : buildNativePlugin.pluginMainEntry,
|
|
129
|
+
/** hooks & methods */
|
|
130
|
+
addChunkPages: config.addChunkPages,
|
|
131
|
+
modifyMiniConfigs: config.modifyMiniConfigs,
|
|
132
|
+
modifyBuildAssets: config.modifyBuildAssets,
|
|
133
|
+
onCompilerMake: config.onCompilerMake,
|
|
134
|
+
onParseCreateElement: config.onParseCreateElement,
|
|
135
|
+
logger: config.logger
|
|
136
|
+
};
|
|
137
|
+
return WebpackPlugin_1.WebpackPlugin.getPlugin(plugin, [options]);
|
|
138
|
+
}
|
|
139
|
+
getCommonChunks() {
|
|
140
|
+
const { buildNativePlugin, config } = this.combination;
|
|
141
|
+
const { commonChunks } = config;
|
|
142
|
+
const defaultCommonChunks = (buildNativePlugin === null || buildNativePlugin === void 0 ? void 0 : buildNativePlugin.commonChunks) || ['runtime', 'vendors', 'taro', 'common'];
|
|
143
|
+
let customCommonChunks = defaultCommonChunks;
|
|
144
|
+
if (shared_1.isFunction(commonChunks)) {
|
|
145
|
+
customCommonChunks = commonChunks(defaultCommonChunks.concat()) || defaultCommonChunks;
|
|
146
|
+
}
|
|
147
|
+
else if (shared_1.isArray(commonChunks) && commonChunks.length) {
|
|
148
|
+
customCommonChunks = commonChunks;
|
|
149
|
+
}
|
|
150
|
+
return customCommonChunks;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.MiniWebpackPlugin = MiniWebpackPlugin;
|
|
154
|
+
//# sourceMappingURL=MiniWebpackPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiniWebpackPlugin.js","sourceRoot":"","sources":["../../src/webpack/MiniWebpackPlugin.ts"],"names":[],"mappings":";;;AAAA,2CAAoD;AACpD,2CAA0C;AAC1C,mDAA+C;AAC/C,sDAA8C;AAC9C,oEAA4D;AAC5D,4EAAoE;AAMpE,MAAa,iBAAiB;IAG5B,YAAa,WAA4B;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,UAAU;QACR,MAAM,OAAO,GAAsD;YACjE,cAAc,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACxC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,oBAAoB,EAAE,IAAI,CAAC,uBAAuB,EAAE;SACrD,CAAA;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAA;QACrD,IAAI,iBAAiB;YAAE,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAEpE,uCAAuC;QACvC,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC7D,IAAI,qBAAqB;YAAE,OAAO,CAAC,qBAAqB,GAAG,qBAAqB,CAAA;QAEhF,MAAM,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;QAC1D,OAAO,CAAC,UAAU,GAAG,UAAU,CAAA;QAE/B,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,iBAAiB;QACf,OAAO,6BAAa,CAAC,iBAAiB,CAAC;YACrC,MAAM,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC;YACrC,QAAQ,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC;YACzC,SAAS,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC;YAC3C,qBAAqB,EAAE,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;YACnE,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;YACjE,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;YAC3C,UAAU,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;YAC7C,gBAAgB,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC1D,CAAC,CAAA;IACJ,CAAC;IAED,eAAe;;QACb,MAAM,EACJ,GAAG,GAAG,EAAE,EACR,OAAO,GAAG,EAA6B,EACvC,eAAe,GAAG,EAAE,EACpB,SAAS,GAAG,OAAO,EACnB,YAAY,GAAG,kBAAS,CAAC,KAAK,EAC/B,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QAE3B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACzC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QAC3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YAC3D,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,OAAO,MAAM,CAAA;QACf,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,MAAM,gBAAgB,GAAG;YACvB,iBAAiB,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,IAAI;YAClD,oBAAoB,EAAE,MAAA,OAAO,CAAC,kBAAkB,mCAAI,KAAK;YACzD,gBAAgB,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,KAAK;YACjD,uBAAuB,EAAE,MAAA,OAAO,CAAC,qBAAqB,mCAAI,KAAK;YAC/D,iBAAiB,EAAE,MAAA,OAAO,CAAC,eAAe,mCAAI,KAAK;YACnD,eAAe,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,KAAK;YAChD,wBAAwB,EAAE,MAAA,OAAO,CAAC,sBAAsB,mCAAI,KAAK;SAClE,CAAA;QAED,OAAO,6BAAa,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAA;IACzF,CAAC;IAED,oBAAoB;;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QACpC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,CAAA;QACtD,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;QACrB,IAAI,iBAAiB,CAAA;QAErB,IAAI,aAAa,EAAE;YACjB,IAAI,KAAJ,IAAI,GAAK,EAAkB,EAAA;YAC3B,MAAA,IAAK,EAAC,QAAQ,QAAR,QAAQ,GAAK,EAAE,EAAA;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,CAAA;SACnE;QAED,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,MAAM,EAAE;YACzB,iBAAiB,GAAG,6BAAa,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;SACtE;QAED,OAAO,iBAAiB,CAAA;IAC1B,CAAC;IAED,uBAAuB;QACrB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,MAAM,EAAE,0BAA0B,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACnE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,QAAQ,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE;YACnC,aAAa,EAAE,SAAS,QAAQ,CAAC,KAAK,EAAE;SACzC,EAAE,0BAA0B,CAAC,CAAA;QAC9B,OAAO,6BAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,wBAAwB;QACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QACrC,MAAM,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QAChD,IAAI,qBAAqB,CAAA;QAEzB,IAAI,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,EAAE;YAC/B,qBAAqB,GAAG,6BAAa,CAAC,SAAS,CAAC,+BAAqB,EAAE,CAAC;oBACtE,OAAO,EAAE,mBAAmB,CAAC,OAAO;oBACpC,QAAQ;iBACT,CAAC,CAAC,CAAA;SACJ;QAED,OAAO,qBAAqB,CAAA;IAC9B,CAAC;IAED,aAAa,CAAE,mBAAmB;QAChC,MAAM,EACJ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,MAAM,EACN,QAAQ,EACT,GAAG,IAAI,CAAC,WAAW,CAAA;QACpB,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,2BAAiB,CAAC,CAAC,CAAC,oBAAU,CAAA;QACjE,MAAM,OAAO,GAAG;YACd,YAAY;YACZ,SAAS;YACT,SAAS;YACT,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,uBAAuB;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO;YACtC,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG;YACtC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;YACjC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,oBAAoB,EAAE,mBAAmB;YACzC,oBAAoB;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,KAAK;YACxB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB;YACjB,aAAa,EAAE,aAAa;YAC5B,YAAY,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY;YAC7C,eAAe,EAAE,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,eAAe;YACnD,sBAAsB;YACtB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;YAC3C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAA;QAED,OAAO,6BAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,eAAe;QACb,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QACtD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;QAC/B,MAAM,mBAAmB,GAAG,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,KAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QACvG,IAAI,kBAAkB,GAAa,mBAAmB,CAAA;QACtD,IAAI,mBAAU,CAAC,YAAY,CAAC,EAAE;YAC5B,kBAAkB,GAAG,YAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,IAAI,mBAAmB,CAAA;SACvF;aAAM,IAAI,gBAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE;YACvD,kBAAkB,GAAG,YAAY,CAAA;SAClC;QACD,OAAO,kBAAkB,CAAA;IAC3B,CAAC;CACF;AA9KD,8CA8KC"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebpackModule = void 0;
|
|
4
|
+
const fs = require("fs-extra");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const helper_1 = require("@tarojs/helper");
|
|
7
|
+
const shared_1 = require("@tarojs/shared");
|
|
8
|
+
class WebpackModule {
|
|
9
|
+
static getLoader(loaderName, options) {
|
|
10
|
+
return {
|
|
11
|
+
loader: require.resolve(loaderName),
|
|
12
|
+
options: options || {}
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
static getCSSLoader(cssLoaderOption) {
|
|
16
|
+
const defaultOptions = {
|
|
17
|
+
importLoaders: 1,
|
|
18
|
+
modules: false
|
|
19
|
+
};
|
|
20
|
+
const options = Object.assign(defaultOptions, cssLoaderOption);
|
|
21
|
+
return WebpackModule.getLoader('css-loader', options);
|
|
22
|
+
}
|
|
23
|
+
static getCSSLoaderWithModule(cssModuleOptions, cssLoaderOption) {
|
|
24
|
+
const { namingPattern, generateScopedName } = cssModuleOptions;
|
|
25
|
+
const defaultOptions = Object.assign({
|
|
26
|
+
importLoaders: 1,
|
|
27
|
+
modules: {
|
|
28
|
+
mode: namingPattern === 'module' ? 'local' : 'global'
|
|
29
|
+
}
|
|
30
|
+
}, {
|
|
31
|
+
modules: shared_1.isFunction(generateScopedName)
|
|
32
|
+
? { getLocalIdent: (context, _, localName) => generateScopedName(localName, context.resourcePath) }
|
|
33
|
+
: { localIdentName: generateScopedName }
|
|
34
|
+
});
|
|
35
|
+
const options = helper_1.recursiveMerge({}, defaultOptions, cssLoaderOption);
|
|
36
|
+
return WebpackModule.getLoader('css-loader', options);
|
|
37
|
+
}
|
|
38
|
+
static getExtractCSSLoader() {
|
|
39
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
40
|
+
return {
|
|
41
|
+
loader: MiniCssExtractPlugin.loader
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
static getStyleLoader(options) {
|
|
45
|
+
return WebpackModule.getLoader('style-loader', options);
|
|
46
|
+
}
|
|
47
|
+
static getPostCSSLoader(options) {
|
|
48
|
+
return WebpackModule.getLoader('postcss-loader', options);
|
|
49
|
+
}
|
|
50
|
+
static getBaseSassOptions() {
|
|
51
|
+
return {
|
|
52
|
+
sourceMap: true,
|
|
53
|
+
implementation: require('sass'),
|
|
54
|
+
sassOptions: {
|
|
55
|
+
outputStyle: 'expanded',
|
|
56
|
+
fiber: false,
|
|
57
|
+
importer(url, prev, done) {
|
|
58
|
+
// 让 sass 文件里的 @import 能解析小程序原生样式文体,如 @import "a.wxss";
|
|
59
|
+
const extname = path.extname(url);
|
|
60
|
+
// fix: @import 文件可以不带scss/sass缀,如: @import "define";
|
|
61
|
+
if (extname === '.scss' || extname === '.sass' || extname === '.css' || !extname) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
const filePath = path.resolve(path.dirname(prev), url);
|
|
66
|
+
fs.access(filePath, fs.constants.F_OK, (err) => {
|
|
67
|
+
if (err) {
|
|
68
|
+
console.log(err);
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
fs.readFile(filePath)
|
|
73
|
+
.then(res => {
|
|
74
|
+
done({ contents: res.toString() });
|
|
75
|
+
})
|
|
76
|
+
.catch(err => {
|
|
77
|
+
console.log(err);
|
|
78
|
+
return null;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
static getSassLoader(sassLoaderOption) {
|
|
88
|
+
const options = helper_1.recursiveMerge({}, WebpackModule.getBaseSassOptions(), {
|
|
89
|
+
sassOptions: {
|
|
90
|
+
indentedSyntax: true
|
|
91
|
+
}
|
|
92
|
+
}, sassLoaderOption);
|
|
93
|
+
return WebpackModule.getLoader('sass-loader', options);
|
|
94
|
+
}
|
|
95
|
+
static getScssLoader(sassLoaderOption) {
|
|
96
|
+
const options = helper_1.recursiveMerge({}, WebpackModule.getBaseSassOptions(), sassLoaderOption);
|
|
97
|
+
return WebpackModule.getLoader('sass-loader', options);
|
|
98
|
+
}
|
|
99
|
+
static getLessLoader(options) {
|
|
100
|
+
return WebpackModule.getLoader('less-loader', options);
|
|
101
|
+
}
|
|
102
|
+
static getStylusLoader(options) {
|
|
103
|
+
return WebpackModule.getLoader('stylus-loader', options);
|
|
104
|
+
}
|
|
105
|
+
static getResolveUrlLoader(options = {}) {
|
|
106
|
+
return WebpackModule.getLoader('resolve-url-loader', options);
|
|
107
|
+
}
|
|
108
|
+
static getScriptRule() {
|
|
109
|
+
return {
|
|
110
|
+
test: helper_1.REG_SCRIPTS,
|
|
111
|
+
use: {
|
|
112
|
+
babelLoader: WebpackModule.getLoader('babel-loader', {
|
|
113
|
+
compact: false
|
|
114
|
+
})
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
static getMediaRule(sourceRoot, options) {
|
|
119
|
+
return {
|
|
120
|
+
test: helper_1.REG_MEDIA,
|
|
121
|
+
type: 'asset',
|
|
122
|
+
parser: {
|
|
123
|
+
dataUrlCondition: {
|
|
124
|
+
maxSize: options.limit || 10 * 1024 // 10kb
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
generator: {
|
|
128
|
+
filename({ filename }) {
|
|
129
|
+
if (shared_1.isFunction(options.name))
|
|
130
|
+
return options.name(filename);
|
|
131
|
+
return options.name || filename.replace(sourceRoot + '/', '');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
static getFontRule(sourceRoot, options) {
|
|
137
|
+
return {
|
|
138
|
+
test: helper_1.REG_FONT,
|
|
139
|
+
type: 'asset',
|
|
140
|
+
parser: {
|
|
141
|
+
dataUrlCondition: {
|
|
142
|
+
maxSize: options.limit || 10 * 1024 // 10kb
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
generator: {
|
|
146
|
+
filename({ filename }) {
|
|
147
|
+
if (shared_1.isFunction(options.name))
|
|
148
|
+
return options.name(filename);
|
|
149
|
+
return options.name || filename.replace(sourceRoot + '/', '');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
static getImageRule(sourceRoot, options) {
|
|
155
|
+
return {
|
|
156
|
+
test: helper_1.REG_IMAGE,
|
|
157
|
+
type: 'asset',
|
|
158
|
+
parser: {
|
|
159
|
+
dataUrlCondition: {
|
|
160
|
+
maxSize: options.limit || 2 * 1024 // 2kb
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
generator: {
|
|
164
|
+
filename({ filename }) {
|
|
165
|
+
if (shared_1.isFunction(options.name))
|
|
166
|
+
return options.name(filename);
|
|
167
|
+
return options.name || filename.replace(sourceRoot + '/', '');
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
exports.WebpackModule = WebpackModule;
|
|
174
|
+
//# sourceMappingURL=WebpackModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebpackModule.js","sourceRoot":"","sources":["../../src/webpack/WebpackModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.WebpackPlugin = void 0;
|
|
15
|
+
const webpack_1 = require("webpack");
|
|
16
|
+
const path = require("path");
|
|
17
|
+
const helper_1 = require("@tarojs/helper");
|
|
18
|
+
const WebpackBarPlugin_1 = require("../plugins/WebpackBarPlugin");
|
|
19
|
+
class WebpackPlugin {
|
|
20
|
+
static getPlugin(plugin, args) {
|
|
21
|
+
return {
|
|
22
|
+
plugin,
|
|
23
|
+
args
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
static getCopyWebpackPlugin(appPath, copy) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
/** @doc https://webpack.js.org/plugins/copy-webpack-plugin */
|
|
29
|
+
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
30
|
+
const globalIgnores = (_b = (_a = copy.options) === null || _a === void 0 ? void 0 : _a.ignore) !== null && _b !== void 0 ? _b : [];
|
|
31
|
+
const patterns = copy.patterns.map((_a) => {
|
|
32
|
+
var { from, to, ignore = [] } = _a, extra = __rest(_a, ["from", "to", "ignore"]);
|
|
33
|
+
return Object.assign({ from, to: path.resolve(appPath, to), context: appPath, globOptions: {
|
|
34
|
+
ignore: ignore.concat(globalIgnores)
|
|
35
|
+
} }, extra);
|
|
36
|
+
});
|
|
37
|
+
const args = { patterns };
|
|
38
|
+
return WebpackPlugin.getPlugin(CopyWebpackPlugin, [args]);
|
|
39
|
+
}
|
|
40
|
+
static getProviderPlugin(args) {
|
|
41
|
+
return WebpackPlugin.getPlugin(webpack_1.ProvidePlugin, [args]);
|
|
42
|
+
}
|
|
43
|
+
static getDefinePlugin(definitionsList) {
|
|
44
|
+
const definitions = Object.assign({}, ...definitionsList);
|
|
45
|
+
return WebpackPlugin.getPlugin(webpack_1.DefinePlugin, [definitions]);
|
|
46
|
+
}
|
|
47
|
+
static getMiniCssExtractPlugin(args) {
|
|
48
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
49
|
+
return WebpackPlugin.getPlugin(MiniCssExtractPlugin, [args]);
|
|
50
|
+
}
|
|
51
|
+
static getTerserPlugin(terserOptions) {
|
|
52
|
+
const TerserPlugin = require('terser-webpack-plugin');
|
|
53
|
+
return WebpackPlugin.getPlugin(TerserPlugin, [{
|
|
54
|
+
parallel: true,
|
|
55
|
+
terserOptions
|
|
56
|
+
}]);
|
|
57
|
+
}
|
|
58
|
+
static getESBuildMinifyPlugin(esbuildMinifyOptions) {
|
|
59
|
+
const ESBuildMinifyPlugin = require('esbuild-loader').ESBuildMinifyPlugin;
|
|
60
|
+
return WebpackPlugin.getPlugin(ESBuildMinifyPlugin, [esbuildMinifyOptions]);
|
|
61
|
+
}
|
|
62
|
+
static getCssMinimizerPlugin(minimizer, minimizerOptions) {
|
|
63
|
+
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
64
|
+
let minify = CssMinimizerPlugin.cssoMinify;
|
|
65
|
+
if (minimizer === 'esbuild') {
|
|
66
|
+
minify = CssMinimizerPlugin.esbuildMinify;
|
|
67
|
+
}
|
|
68
|
+
else if (minimizer === 'parcelCss') {
|
|
69
|
+
minify = CssMinimizerPlugin.parcelCssMinify;
|
|
70
|
+
}
|
|
71
|
+
const options = {
|
|
72
|
+
test: helper_1.REG_STYLE,
|
|
73
|
+
parallel: true,
|
|
74
|
+
minify,
|
|
75
|
+
minimizerOptions
|
|
76
|
+
};
|
|
77
|
+
return WebpackPlugin.getPlugin(CssMinimizerPlugin, [options]);
|
|
78
|
+
}
|
|
79
|
+
static getWebpackBarPlugin(webpackBarOptions = {}) {
|
|
80
|
+
return WebpackPlugin.getPlugin(WebpackBarPlugin_1.TaroWebpackBarPlugin, [webpackBarOptions]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.WebpackPlugin = WebpackPlugin;
|
|
84
|
+
//# sourceMappingURL=WebpackPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebpackPlugin.js","sourceRoot":"","sources":["../../src/webpack/WebpackPlugin.ts"],"names":[],"mappings":"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"}
|