@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.
Files changed (94) hide show
  1. package/README.md +3 -0
  2. package/dist/dependencies/TaroSingleEntryDependency.js +18 -0
  3. package/dist/dependencies/TaroSingleEntryDependency.js.map +1 -0
  4. package/dist/index.h5.js +224 -0
  5. package/dist/index.h5.js.map +1 -0
  6. package/dist/index.mini.js +69 -0
  7. package/dist/index.mini.js.map +1 -0
  8. package/dist/loaders/miniTemplateLoader.js +63 -0
  9. package/dist/loaders/miniTemplateLoader.js.map +1 -0
  10. package/dist/plugins/BuildNativePlugin.js +124 -0
  11. package/dist/plugins/BuildNativePlugin.js.map +1 -0
  12. package/dist/plugins/H5Plugin.js +91 -0
  13. package/dist/plugins/H5Plugin.js.map +1 -0
  14. package/dist/plugins/MiniPlugin.js +1027 -0
  15. package/dist/plugins/MiniPlugin.js.map +1 -0
  16. package/dist/plugins/MiniSplitChunksPlugin.js +678 -0
  17. package/dist/plugins/MiniSplitChunksPlugin.js.map +1 -0
  18. package/dist/plugins/TaroLoadChunksPlugin.js +176 -0
  19. package/dist/plugins/TaroLoadChunksPlugin.js.map +1 -0
  20. package/dist/plugins/TaroNormalModule.js +51 -0
  21. package/dist/plugins/TaroNormalModule.js.map +1 -0
  22. package/dist/plugins/TaroNormalModulesPlugin.js +63 -0
  23. package/dist/plugins/TaroNormalModulesPlugin.js.map +1 -0
  24. package/dist/plugins/TaroSingleEntryPlugin.js +26 -0
  25. package/dist/plugins/TaroSingleEntryPlugin.js.map +1 -0
  26. package/dist/plugins/WebpackBarPlugin.js +26 -0
  27. package/dist/plugins/WebpackBarPlugin.js.map +1 -0
  28. package/dist/postcss/postcss.h5.js +70 -0
  29. package/dist/postcss/postcss.h5.js.map +1 -0
  30. package/dist/postcss/postcss.mini.js +75 -0
  31. package/dist/postcss/postcss.mini.js.map +1 -0
  32. package/dist/prebundle/bundle.js +167 -0
  33. package/dist/prebundle/bundle.js.map +1 -0
  34. package/dist/prebundle/constant.js +60 -0
  35. package/dist/prebundle/constant.js.map +1 -0
  36. package/dist/prebundle/index.js +234 -0
  37. package/dist/prebundle/index.js.map +1 -0
  38. package/dist/prebundle/scanImports.js +193 -0
  39. package/dist/prebundle/scanImports.js.map +1 -0
  40. package/dist/prebundle/utils.js +170 -0
  41. package/dist/prebundle/utils.js.map +1 -0
  42. package/dist/prebundle/webpack/TaroContainerEntryModule.js +76 -0
  43. package/dist/prebundle/webpack/TaroContainerEntryModule.js.map +1 -0
  44. package/dist/prebundle/webpack/TaroContainerPlugin.js +75 -0
  45. package/dist/prebundle/webpack/TaroContainerPlugin.js.map +1 -0
  46. package/dist/prebundle/webpack/TaroContainerReferencePlugin.js +124 -0
  47. package/dist/prebundle/webpack/TaroContainerReferencePlugin.js.map +1 -0
  48. package/dist/prebundle/webpack/index.js +1 -0
  49. package/dist/prebundle/webpack/index.js.map +1 -0
  50. package/dist/prerender/prerender.js +228 -0
  51. package/dist/prerender/prerender.js.map +1 -0
  52. package/dist/template/comp.js +4 -0
  53. package/dist/template/component.js +10 -0
  54. package/dist/template/component.js.map +1 -0
  55. package/dist/template/custom-wrapper.js +7 -0
  56. package/dist/template/custom-wrapper.js.map +1 -0
  57. package/dist/utils/H5AppInstance.js +110 -0
  58. package/dist/utils/H5AppInstance.js.map +1 -0
  59. package/dist/utils/index.js +53 -0
  60. package/dist/utils/index.js.map +1 -0
  61. package/dist/utils/logHelper.js +153 -0
  62. package/dist/utils/logHelper.js.map +1 -0
  63. package/dist/utils/types.js +3 -0
  64. package/dist/utils/types.js.map +1 -0
  65. package/dist/utils/webpack.js +12 -0
  66. package/dist/utils/webpack.js.map +1 -0
  67. package/dist/webpack/BaseConfig.js +155 -0
  68. package/dist/webpack/BaseConfig.js.map +1 -0
  69. package/dist/webpack/BuildNativePlugin.js +57 -0
  70. package/dist/webpack/BuildNativePlugin.js.map +1 -0
  71. package/dist/webpack/Combination.js +69 -0
  72. package/dist/webpack/Combination.js.map +1 -0
  73. package/dist/webpack/H5BaseConfig.js +30 -0
  74. package/dist/webpack/H5BaseConfig.js.map +1 -0
  75. package/dist/webpack/H5Combination.js +106 -0
  76. package/dist/webpack/H5Combination.js.map +1 -0
  77. package/dist/webpack/H5WebpackModule.js +261 -0
  78. package/dist/webpack/H5WebpackModule.js.map +1 -0
  79. package/dist/webpack/H5WebpackPlugin.js +85 -0
  80. package/dist/webpack/H5WebpackPlugin.js.map +1 -0
  81. package/dist/webpack/MiniBaseConfig.js +73 -0
  82. package/dist/webpack/MiniBaseConfig.js.map +1 -0
  83. package/dist/webpack/MiniCombination.js +115 -0
  84. package/dist/webpack/MiniCombination.js.map +1 -0
  85. package/dist/webpack/MiniWebpackModule.js +204 -0
  86. package/dist/webpack/MiniWebpackModule.js.map +1 -0
  87. package/dist/webpack/MiniWebpackPlugin.js +154 -0
  88. package/dist/webpack/MiniWebpackPlugin.js.map +1 -0
  89. package/dist/webpack/WebpackModule.js +174 -0
  90. package/dist/webpack/WebpackModule.js.map +1 -0
  91. package/dist/webpack/WebpackPlugin.js +84 -0
  92. package/dist/webpack/WebpackPlugin.js.map +1 -0
  93. package/index.js +7 -0
  94. 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":"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"}
@@ -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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"}