piral-cli-webpack5 0.15.10-beta.5462 → 0.15.10-beta.5490
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/lib/enhancers/pilet-webpack-config-enhancer/index.d.ts +1 -1
- package/lib/enhancers/pilet-webpack-config-enhancer/index.js +31 -6
- package/lib/enhancers/pilet-webpack-config-enhancer/index.js.map +1 -1
- package/lib/plugins/StylesLoader.d.ts +1 -0
- package/lib/plugins/StylesLoader.js +13 -0
- package/lib/plugins/StylesLoader.js.map +1 -0
- package/lib/plugins/StylesPlugin.d.ts +7 -0
- package/lib/plugins/StylesPlugin.js +31 -0
- package/lib/plugins/StylesPlugin.js.map +1 -0
- package/lib/webpack/common.d.ts +4 -3
- package/lib/webpack/common.js +6 -11
- package/lib/webpack/common.js.map +1 -1
- package/lib/webpack/pilet.js +3 -2
- package/lib/webpack/pilet.js.map +1 -1
- package/lib/webpack/piral.js +3 -2
- package/lib/webpack/piral.js.map +1 -1
- package/package.json +3 -3
- package/src/enhancers/pilet-webpack-config-enhancer/index.ts +44 -4
- package/src/plugins/StylesLoader.ts +10 -0
- package/src/plugins/StylesPlugin.ts +34 -0
- package/src/webpack/common.ts +5 -12
- package/src/webpack/pilet.ts +5 -3
- package/src/webpack/piral.ts +5 -3
|
@@ -24,7 +24,7 @@ export interface PiletWebpackConfigEnhancerOptions {
|
|
|
24
24
|
/**
|
|
25
25
|
* The schema version. By default, v1 is used.
|
|
26
26
|
*/
|
|
27
|
-
schema?: 'v0' | 'v1' | 'v2' | 'none';
|
|
27
|
+
schema?: 'v0' | 'v1' | 'v2' | 'v3' | 'none';
|
|
28
28
|
/**
|
|
29
29
|
* The shared dependencies. By default, these are read from the
|
|
30
30
|
* Piral instance.
|
|
@@ -4,6 +4,9 @@ exports.piletWebpackConfigEnhancer = void 0;
|
|
|
4
4
|
const SystemJSPublicPathWebpackPlugin = require("systemjs-webpack-interop/SystemJSPublicPathWebpackPlugin");
|
|
5
5
|
const webpack_1 = require("webpack");
|
|
6
6
|
const helpers_1 = require("./helpers");
|
|
7
|
+
const StylesPlugin_1 = require("../../plugins/StylesPlugin");
|
|
8
|
+
const SheetPlugin_1 = require("../../plugins/SheetPlugin");
|
|
9
|
+
const piletCss = 'main.css';
|
|
7
10
|
function piletVxWebpackConfigEnhancer(options, compiler) {
|
|
8
11
|
const { variables, externals } = options;
|
|
9
12
|
(0, helpers_1.withSetPath)(compiler);
|
|
@@ -13,14 +16,14 @@ function piletVxWebpackConfigEnhancer(options, compiler) {
|
|
|
13
16
|
return compiler;
|
|
14
17
|
}
|
|
15
18
|
function piletV0WebpackConfigEnhancer(options, compiler) {
|
|
16
|
-
const { name, variables, externals, file } = options;
|
|
19
|
+
const { name, variables, externals, file, entry } = options;
|
|
17
20
|
const shortName = name.replace(/\W/gi, '');
|
|
18
21
|
const jsonpFunction = `pr_${shortName}`;
|
|
19
22
|
const banner = `//@pilet v:0`;
|
|
20
23
|
(0, helpers_1.withSetPath)(compiler);
|
|
21
24
|
(0, helpers_1.setEnvironment)(variables);
|
|
22
25
|
(0, helpers_1.withExternals)(compiler, externals);
|
|
23
|
-
compiler.plugins.push(new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
26
|
+
compiler.plugins.push(new SheetPlugin_1.default(piletCss, name, entry), new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
24
27
|
banner,
|
|
25
28
|
entryOnly: true,
|
|
26
29
|
include: file,
|
|
@@ -32,14 +35,14 @@ function piletV0WebpackConfigEnhancer(options, compiler) {
|
|
|
32
35
|
return compiler;
|
|
33
36
|
}
|
|
34
37
|
function piletV1WebpackConfigEnhancer(options, compiler) {
|
|
35
|
-
const { name, variables, externals, file } = options;
|
|
38
|
+
const { name, variables, externals, file, entry } = options;
|
|
36
39
|
const shortName = name.replace(/\W/gi, '');
|
|
37
40
|
const jsonpFunction = `pr_${shortName}`;
|
|
38
41
|
const banner = `//@pilet v:1(${jsonpFunction})`;
|
|
39
42
|
(0, helpers_1.withSetPath)(compiler);
|
|
40
43
|
(0, helpers_1.setEnvironment)(variables);
|
|
41
44
|
(0, helpers_1.withExternals)(compiler, externals);
|
|
42
|
-
compiler.plugins.push(new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
45
|
+
compiler.plugins.push(new SheetPlugin_1.default(piletCss, name, entry), new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
43
46
|
banner,
|
|
44
47
|
entryOnly: true,
|
|
45
48
|
include: file,
|
|
@@ -54,7 +57,7 @@ function piletV1WebpackConfigEnhancer(options, compiler) {
|
|
|
54
57
|
return compiler;
|
|
55
58
|
}
|
|
56
59
|
function piletV2WebpackConfigEnhancer(options, compiler) {
|
|
57
|
-
const { name, variables, externals, file, importmap } = options;
|
|
60
|
+
const { name, variables, externals, file, importmap, entry } = options;
|
|
58
61
|
const shortName = name.replace(/\W/gi, '');
|
|
59
62
|
const jsonpFunction = `pr_${shortName}`;
|
|
60
63
|
const plugins = [];
|
|
@@ -62,7 +65,27 @@ function piletV2WebpackConfigEnhancer(options, compiler) {
|
|
|
62
65
|
(0, helpers_1.setEnvironment)(variables);
|
|
63
66
|
const dependencies = (0, helpers_1.getDependencies)(importmap, compiler);
|
|
64
67
|
const banner = `//@pilet v:2(webpackChunk${jsonpFunction},${JSON.stringify(dependencies)})`;
|
|
65
|
-
plugins.push(new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
68
|
+
plugins.push(new SheetPlugin_1.default(piletCss, name, entry), new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
69
|
+
banner,
|
|
70
|
+
entryOnly: true,
|
|
71
|
+
include: file,
|
|
72
|
+
raw: true,
|
|
73
|
+
}), new SystemJSPublicPathWebpackPlugin());
|
|
74
|
+
compiler.plugins = [...compiler.plugins, ...plugins];
|
|
75
|
+
compiler.output.uniqueName = `${jsonpFunction}`;
|
|
76
|
+
compiler.output.library = { type: 'system' };
|
|
77
|
+
return compiler;
|
|
78
|
+
}
|
|
79
|
+
function piletV3WebpackConfigEnhancer(options, compiler) {
|
|
80
|
+
const { name, variables, externals, file, importmap, entry } = options;
|
|
81
|
+
const shortName = name.replace(/\W/gi, '');
|
|
82
|
+
const jsonpFunction = `pr_${shortName}`;
|
|
83
|
+
const plugins = [];
|
|
84
|
+
(0, helpers_1.withExternals)(compiler, externals);
|
|
85
|
+
(0, helpers_1.setEnvironment)(variables);
|
|
86
|
+
const dependencies = (0, helpers_1.getDependencies)(importmap, compiler);
|
|
87
|
+
const banner = `//@pilet v:3(webpackChunk${jsonpFunction},${JSON.stringify(dependencies)})`;
|
|
88
|
+
plugins.push(new StylesPlugin_1.default(piletCss, entry), new webpack_1.DefinePlugin((0, helpers_1.getDefineVariables)(variables)), new webpack_1.BannerPlugin({
|
|
66
89
|
banner,
|
|
67
90
|
entryOnly: true,
|
|
68
91
|
include: file,
|
|
@@ -91,6 +114,8 @@ const piletWebpackConfigEnhancer = (details) => (compiler) => {
|
|
|
91
114
|
return piletV1WebpackConfigEnhancer(options, compiler);
|
|
92
115
|
case 'v2':
|
|
93
116
|
return piletV2WebpackConfigEnhancer(options, compiler);
|
|
117
|
+
case 'v3':
|
|
118
|
+
return piletV3WebpackConfigEnhancer(options, compiler);
|
|
94
119
|
case 'none':
|
|
95
120
|
default:
|
|
96
121
|
return piletVxWebpackConfigEnhancer(options, compiler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enhancers/pilet-webpack-config-enhancer/index.ts"],"names":[],"mappings":";;;AAAA,4GAA4G;AAE5G,qCAAoE;AACpE,uCAOmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enhancers/pilet-webpack-config-enhancer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function stylesLoader(): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const loader_utils_1 = require("loader-utils");
|
|
4
|
+
function stylesLoader() {
|
|
5
|
+
const { cssName } = (0, loader_utils_1.getOptions)(this);
|
|
6
|
+
const debug = process.env.NODE_ENV === 'development';
|
|
7
|
+
return [
|
|
8
|
+
`const u = ${JSON.stringify(cssName)}`,
|
|
9
|
+
`export const styles = [${debug ? 'u+"?_="+Math.random()' : 'u'}]`,
|
|
10
|
+
].join(';');
|
|
11
|
+
}
|
|
12
|
+
exports.default = stylesLoader;
|
|
13
|
+
//# sourceMappingURL=StylesLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StylesLoader.js","sourceRoot":"","sources":["../../src/plugins/StylesLoader.ts"],"names":[],"mappings":";;AAAA,+CAA0C;AAE1C,SAAwB,YAAY;IAClC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,yBAAU,EAAC,IAAI,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,CAAC;IACrD,OAAO;QACL,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACtC,0BAA0B,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,GAAG,GAAG;KACnE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAPD,+BAOC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path_1 = require("path");
|
|
4
|
+
const webpack_1 = require("webpack");
|
|
5
|
+
const webpack_sources_1 = require("webpack-sources");
|
|
6
|
+
class StylesPlugin {
|
|
7
|
+
constructor(cssName, entryName) {
|
|
8
|
+
this.cssName = cssName;
|
|
9
|
+
this.entryName = entryName;
|
|
10
|
+
this.loaderPath = (0, path_1.resolve)(__dirname, `StylesLoader?cssName=${cssName}!`);
|
|
11
|
+
}
|
|
12
|
+
apply(compiler) {
|
|
13
|
+
const { entry } = compiler.options;
|
|
14
|
+
entry[this.entryName].import = [this.loaderPath, ...entry[this.entryName].import];
|
|
15
|
+
compiler.hooks.compilation.tap('StylesPlugin', (compilation) => {
|
|
16
|
+
if (!compilation.compiler.parentCompilation) {
|
|
17
|
+
compilation.hooks.processAssets.tap({
|
|
18
|
+
name: 'StylesPlugin',
|
|
19
|
+
stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,
|
|
20
|
+
}, (assets) => {
|
|
21
|
+
if (!assets[this.cssName]) {
|
|
22
|
+
const source = new webpack_sources_1.RawSource('');
|
|
23
|
+
compilation.emitAsset(this.cssName, source);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.default = StylesPlugin;
|
|
31
|
+
//# sourceMappingURL=StylesPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StylesPlugin.js","sourceRoot":"","sources":["../../src/plugins/StylesPlugin.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,qCAAsC;AACtC,qDAA4C;AAE5C,MAAqB,YAAY;IAG/B,YAAoB,OAAe,EAAU,SAAiB;QAA1C,YAAO,GAAP,OAAO,CAAQ;QAAU,cAAS,GAAT,SAAS,CAAQ;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAA,cAAO,EAAC,SAAS,EAAE,wBAAwB,OAAO,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEnC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;QAElF,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,WAAwB,EAAE,EAAE;YAC1E,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE;gBAC3C,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CACjC;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,qBAAW,CAAC,8BAA8B;iBAClD,EACD,CAAC,MAAM,EAAE,EAAE;oBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;wBACzB,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC,EAAE,CAAC,CAAC;wBACjC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;qBAC7C;gBACH,CAAC,CACF,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA7BD,+BA6BC"}
|
package/lib/webpack/common.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { RuleSetRule, Configuration } from 'webpack';
|
|
1
|
+
import { RuleSetRule, WebpackPluginInstance, Configuration } from 'webpack';
|
|
2
|
+
export declare function getStyleLoaders(useExtractLoader: boolean): string[];
|
|
2
3
|
export declare type ConfigEnhancer = (config: Configuration) => Configuration;
|
|
3
4
|
export declare type DefaultConfiguration = [Configuration, ConfigEnhancer];
|
|
4
5
|
export declare const extensions: string[];
|
|
5
6
|
export declare function getVariables(): Record<string, string>;
|
|
6
|
-
export declare function getPlugins(plugins: Array<
|
|
7
|
-
export declare function getRules(
|
|
7
|
+
export declare function getPlugins(plugins: Array<WebpackPluginInstance>, pilet?: string): WebpackPluginInstance[];
|
|
8
|
+
export declare function getRules(styleLoaders: Array<string>): Array<RuleSetRule>;
|
package/lib/webpack/common.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRules = exports.getPlugins = exports.getVariables = exports.extensions = void 0;
|
|
3
|
+
exports.getRules = exports.getPlugins = exports.getVariables = exports.extensions = exports.getStyleLoaders = void 0;
|
|
4
4
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
5
5
|
const utils_1 = require("piral-cli/utils");
|
|
6
6
|
const webpack_1 = require("webpack");
|
|
7
|
-
const SheetPlugin_1 = require("../plugins/SheetPlugin");
|
|
8
7
|
const piletCss = 'main.css';
|
|
9
|
-
function getStyleLoaders(
|
|
10
|
-
if (
|
|
8
|
+
function getStyleLoaders(useExtractLoader) {
|
|
9
|
+
if (useExtractLoader) {
|
|
11
10
|
return [MiniCssExtractPlugin.loader];
|
|
12
11
|
}
|
|
13
12
|
else {
|
|
14
13
|
return [require.resolve('style-loader')];
|
|
15
14
|
}
|
|
16
15
|
}
|
|
16
|
+
exports.getStyleLoaders = getStyleLoaders;
|
|
17
17
|
exports.extensions = ['.ts', '.tsx', '.js', '.jsx', '.json'];
|
|
18
18
|
function getVariables() {
|
|
19
19
|
return Object.keys(process.env).reduce((prev, curr) => {
|
|
@@ -22,7 +22,7 @@ function getVariables() {
|
|
|
22
22
|
}, {});
|
|
23
23
|
}
|
|
24
24
|
exports.getVariables = getVariables;
|
|
25
|
-
function getPlugins(plugins,
|
|
25
|
+
function getPlugins(plugins, pilet) {
|
|
26
26
|
const otherPlugins = [
|
|
27
27
|
new MiniCssExtractPlugin({
|
|
28
28
|
filename: pilet ? piletCss : '[name].[fullhash:6].css',
|
|
@@ -40,15 +40,10 @@ function getPlugins(plugins, production, pilet) {
|
|
|
40
40
|
}
|
|
41
41
|
}));
|
|
42
42
|
}
|
|
43
|
-
if (production && pilet) {
|
|
44
|
-
const name = process.env.BUILD_PCKG_NAME;
|
|
45
|
-
otherPlugins.push(new SheetPlugin_1.default(piletCss, name, pilet));
|
|
46
|
-
}
|
|
47
43
|
return plugins.concat(otherPlugins);
|
|
48
44
|
}
|
|
49
45
|
exports.getPlugins = getPlugins;
|
|
50
|
-
function getRules(
|
|
51
|
-
const styleLoaders = getStyleLoaders(production);
|
|
46
|
+
function getRules(styleLoaders) {
|
|
52
47
|
const nodeModules = /node_modules/;
|
|
53
48
|
const babelLoader = {
|
|
54
49
|
loader: require.resolve('babel-loader'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/webpack/common.ts"],"names":[],"mappings":";;;AAAA,gEAAgE;AAChE,2CAA0D;AAC1D,qCAA4F;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/webpack/common.ts"],"names":[],"mappings":";;;AAAA,gEAAgE;AAChE,2CAA0D;AAC1D,qCAA4F;AAE5F,MAAM,QAAQ,GAAG,UAAU,CAAC;AAE5B,SAAgB,eAAe,CAAC,gBAAyB;IACvD,IAAI,gBAAgB,EAAE;QACpB,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;KACtC;SAAM;QACL,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;KAC1C;AACH,CAAC;AAND,0CAMC;AAMY,QAAA,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAElE,SAAgB,YAAY;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AALD,oCAKC;AAED,SAAgB,UAAU,CAAC,OAAqC,EAAE,KAAc;IAC9E,MAAM,YAAY,GAAiC;QACjD,IAAI,oBAAoB,CAAC;YACvB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;YACtD,aAAa,EAAE,wBAAwB;SACxC,CAAC;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;QAChC,YAAY,CAAC,IAAI,CACf,IAAI,wBAAc,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YAClC,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,IAAA,gBAAQ,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;gBAE3C,IAAI,OAAO,KAAK,CAAC,EAAE;oBACjB,IAAA,gBAAQ,GAAE,CAAC;oBACX,IAAA,WAAG,EAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;iBAC/C;aACF;QACH,CAAC,CAAC,CACH,CAAC;KACH;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAxBD,gCAwBC;AAED,SAAgB,QAAQ,CAAC,YAA2B;IAClD,MAAM,WAAW,GAAG,cAAc,CAAC;IACnC,MAAM,WAAW,GAAG;QAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACvC,OAAO,EAAE;YACP,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACxF;KACF,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;QACpC,OAAO,EAAE;YACP,aAAa,EAAE,IAAI;SACpB;KACF,CAAC;IAEF,OAAO;QACL;YACE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,aAAa;oBACnB,GAAG,EAAE,CAAC,GAAG,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;iBACtF;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,CAAC,GAAG,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;iBACtD;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,GAAG,EAAE,CAAC,WAAW,CAAC;oBAClB,OAAO,EAAE,WAAW;iBACrB;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,GAAG,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;iBAC7B;gBACD;oBACE,IAAI,EAAE,aAAa;oBACnB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;iBAChD;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBAC3C,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,KAAK;iBACf;gBACD;oBACE,gEAAgE;oBAChE,uEAAuE;oBACvE,kEAAkE;oBAClE,gCAAgC;oBAChC,OAAO,EAAE,CAAC,IAAI,EAAE,wCAAwC,EAAE,UAAU,EAAE,UAAU,CAAC;oBACjF,IAAI,EAAE,gBAAgB;iBACvB;gBACD,oFAAoF;aACrF;SACF;KACF,CAAC;AACJ,CAAC;AAzDD,4BAyDC"}
|
package/lib/webpack/pilet.js
CHANGED
|
@@ -35,6 +35,7 @@ function getConfig(template, dist, filename, externals, importmap = [], piralIns
|
|
|
35
35
|
filename,
|
|
36
36
|
variables: (0, common_1.getVariables)(),
|
|
37
37
|
});
|
|
38
|
+
const styleLoaders = (0, common_1.getStyleLoaders)(true);
|
|
38
39
|
return [
|
|
39
40
|
{
|
|
40
41
|
devtool: sourceMaps ? (develop ? 'cheap-module-source-map' : 'source-map') : false,
|
|
@@ -53,7 +54,7 @@ function getConfig(template, dist, filename, externals, importmap = [], piralIns
|
|
|
53
54
|
extensions: common_1.extensions,
|
|
54
55
|
},
|
|
55
56
|
module: {
|
|
56
|
-
rules: (0, common_1.getRules)(
|
|
57
|
+
rules: (0, common_1.getRules)(styleLoaders),
|
|
57
58
|
},
|
|
58
59
|
optimization: {
|
|
59
60
|
minimize,
|
|
@@ -73,7 +74,7 @@ function getConfig(template, dist, filename, externals, importmap = [], piralIns
|
|
|
73
74
|
new CssMinimizerPlugin(),
|
|
74
75
|
],
|
|
75
76
|
},
|
|
76
|
-
plugins: (0, common_1.getPlugins)([],
|
|
77
|
+
plugins: (0, common_1.getPlugins)([], entry),
|
|
77
78
|
},
|
|
78
79
|
enhance,
|
|
79
80
|
];
|
package/lib/webpack/pilet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pilet.js","sourceRoot":"","sources":["../../src/webpack/pilet.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sDAAsD;AACtD,mEAAmE;AAEnE,
|
|
1
|
+
{"version":3,"file":"pilet.js","sourceRoot":"","sources":["../../src/webpack/pilet.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sDAAsD;AACtD,mEAAmE;AAEnE,qCAAiH;AACjH,8FAAwF;AACxF,+BAA+B;AAC/B,+CAA2C;AAC3C,4CAAoD;AACpD,wCAA0C;AAE1C,SAAe,SAAS,CACtB,QAAgB,EAChB,IAAY,EACZ,QAAgB,EAChB,SAAwB,EACxB,YAAqC,EAAE,EACvC,cAA6B,EAC7B,MAA0B,EAC1B,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,IAAI,EAClB,QAAQ,GAAG,IAAI;;QAEf,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAE7C,MAAM,OAAO,GAAG,IAAA,0DAA0B,EAAC;YACzC,IAAI;YACJ,cAAc;YACd,OAAO;YACP,KAAK;YACL,SAAS;YACT,SAAS;YACT,MAAM;YACN,QAAQ;YACR,SAAS,EAAE,IAAA,qBAAY,GAAE;SAC1B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAC;QAE3C,OAAO;YACL;gBACE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK;gBAElF,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;gBAE5C,MAAM,EAAE,KAAK;gBAEb,KAAK,EAAE;oBACL,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC;iBACpB;gBAED,MAAM,EAAE;oBACN,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,IAAI;oBACV,QAAQ,EAAE,WAAW;oBACrB,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;iBAC5D;gBAED,OAAO,EAAE;oBACP,UAAU,EAAV,mBAAU;iBACX;gBAED,MAAM,EAAE;oBACN,KAAK,EAAE,IAAA,iBAAQ,EAAC,YAAY,CAAC;iBAC9B;gBAED,YAAY,EAAE;oBACZ,QAAQ;oBACR,SAAS,EAAE;wBACT,IAAI,YAAY,CAAC;4BACf,eAAe,EAAE,KAAK;4BACtB,aAAa,EAAE;gCACb,GAAG,EAAE,IAAI;gCACT,MAAM,EAAE;oCACN,QAAQ,EAAE,SAAS;iCACpB;gCACD,MAAM,EAAE;oCACN,QAAQ,EAAE,CAAC,eAAe,CAAC;iCAC5B;6BACF;yBACF,CAAC;wBACF,IAAI,kBAAkB,EAAE;qBACzB;iBACF;gBAED,OAAO,EAAE,IAAA,mBAAU,EAAC,EAAE,EAAE,KAAK,CAAC;aAC/B;YACD,OAAO;SACR,CAAC;IACJ,CAAC;CAAA;AAED,MAAM,OAAO,GAAsB;IAC3B,MAAM,CAAC,OAAO;;YAClB,MAAM,EAAE,MAAM,GAAG,gCAAoB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,MAAM,eAAe,GAAG,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,UAAU,GAAG,MAAM,SAAS,CAChC,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,CACf,CAAC;YACF,MAAM,QAAQ,GAAG,IAAA,sBAAY,EAAC,UAAU,EAAE,eAAe,EAAE;gBACzD,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;YAEH,OAAO,IAAA,wBAAU,EAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;KAAA;CACF,CAAC;AAEW,QAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC"}
|
package/lib/webpack/piral.js
CHANGED
|
@@ -36,6 +36,7 @@ function getConfig(template, dist, externals, develop = false, sourceMaps = true
|
|
|
36
36
|
variables: (0, common_1.getVariables)(),
|
|
37
37
|
}),
|
|
38
38
|
].reduceRight((acc, val) => val(acc), options);
|
|
39
|
+
const styleLoaders = (0, common_1.getStyleLoaders)(production);
|
|
39
40
|
return [
|
|
40
41
|
{
|
|
41
42
|
devtool: sourceMaps ? (develop ? 'cheap-module-source-map' : 'source-map') : false,
|
|
@@ -51,7 +52,7 @@ function getConfig(template, dist, externals, develop = false, sourceMaps = true
|
|
|
51
52
|
extensions: common_1.extensions,
|
|
52
53
|
},
|
|
53
54
|
module: {
|
|
54
|
-
rules: (0, common_1.getRules)(
|
|
55
|
+
rules: (0, common_1.getRules)(styleLoaders),
|
|
55
56
|
},
|
|
56
57
|
optimization: {
|
|
57
58
|
minimize,
|
|
@@ -65,7 +66,7 @@ function getConfig(template, dist, externals, develop = false, sourceMaps = true
|
|
|
65
66
|
new CssMinimizerPlugin(),
|
|
66
67
|
],
|
|
67
68
|
},
|
|
68
|
-
plugins: (0, common_1.getPlugins)([]
|
|
69
|
+
plugins: (0, common_1.getPlugins)([]),
|
|
69
70
|
},
|
|
70
71
|
enhance,
|
|
71
72
|
];
|
package/lib/webpack/piral.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"piral.js","sourceRoot":"","sources":["../../src/webpack/piral.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,sDAAsD;AACtD,mEAAmE;AACnE,2CAA8C;AAC9C,+BAA+B;AAC/B,+CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"piral.js","sourceRoot":"","sources":["../../src/webpack/piral.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-cli-webpack5",
|
|
3
|
-
"version": "0.15.10-beta.
|
|
3
|
+
"version": "0.15.10-beta.5490",
|
|
4
4
|
"description": "Provides debug and build capabilities for pilets and Piral instances using Webpack v5.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"piral-cli",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@types/node": "^13.9.0",
|
|
50
50
|
"@types/terser-webpack-plugin": "^5.0.0",
|
|
51
51
|
"@types/yargs": "^15.0.4",
|
|
52
|
-
"piral-cli": "0.15.10-beta.
|
|
52
|
+
"piral-cli": "0.15.10-beta.5490",
|
|
53
53
|
"strip-ansi": "^3.0.0"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
@@ -76,5 +76,5 @@
|
|
|
76
76
|
"ts-loader": "^8.0.6",
|
|
77
77
|
"webpack": "^5.1.3"
|
|
78
78
|
},
|
|
79
|
-
"gitHead": "
|
|
79
|
+
"gitHead": "c275a93204a80a1a8fbc40c266e9256982eedbc5"
|
|
80
80
|
}
|
|
@@ -9,6 +9,10 @@ import {
|
|
|
9
9
|
withExternals,
|
|
10
10
|
getDependencies,
|
|
11
11
|
} from './helpers';
|
|
12
|
+
import StylesPlugin from '../../plugins/StylesPlugin';
|
|
13
|
+
import SheetPlugin from '../../plugins/SheetPlugin';
|
|
14
|
+
|
|
15
|
+
const piletCss = 'main.css';
|
|
12
16
|
|
|
13
17
|
export interface PiletWebpackConfigEnhancerOptions {
|
|
14
18
|
/**
|
|
@@ -34,7 +38,7 @@ export interface PiletWebpackConfigEnhancerOptions {
|
|
|
34
38
|
/**
|
|
35
39
|
* The schema version. By default, v1 is used.
|
|
36
40
|
*/
|
|
37
|
-
schema?: 'v0' | 'v1' | 'v2' | 'none';
|
|
41
|
+
schema?: 'v0' | 'v1' | 'v2' | 'v3' | 'none';
|
|
38
42
|
/**
|
|
39
43
|
* The shared dependencies. By default, these are read from the
|
|
40
44
|
* Piral instance.
|
|
@@ -72,7 +76,7 @@ function piletVxWebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
function piletV0WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler: Configuration) {
|
|
75
|
-
const { name, variables, externals, file } = options;
|
|
79
|
+
const { name, variables, externals, file, entry } = options;
|
|
76
80
|
const shortName = name.replace(/\W/gi, '');
|
|
77
81
|
const jsonpFunction = `pr_${shortName}`;
|
|
78
82
|
const banner = `//@pilet v:0`;
|
|
@@ -82,6 +86,7 @@ function piletV0WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
82
86
|
withExternals(compiler, externals);
|
|
83
87
|
|
|
84
88
|
compiler.plugins.push(
|
|
89
|
+
new SheetPlugin(piletCss, name, entry),
|
|
85
90
|
new DefinePlugin(getDefineVariables(variables)),
|
|
86
91
|
new BannerPlugin({
|
|
87
92
|
banner,
|
|
@@ -98,7 +103,7 @@ function piletV0WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
98
103
|
}
|
|
99
104
|
|
|
100
105
|
function piletV1WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler: Configuration) {
|
|
101
|
-
const { name, variables, externals, file } = options;
|
|
106
|
+
const { name, variables, externals, file, entry } = options;
|
|
102
107
|
const shortName = name.replace(/\W/gi, '');
|
|
103
108
|
const jsonpFunction = `pr_${shortName}`;
|
|
104
109
|
const banner = `//@pilet v:1(${jsonpFunction})`;
|
|
@@ -108,6 +113,7 @@ function piletV1WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
108
113
|
withExternals(compiler, externals);
|
|
109
114
|
|
|
110
115
|
compiler.plugins.push(
|
|
116
|
+
new SheetPlugin(piletCss, name, entry),
|
|
111
117
|
new DefinePlugin(getDefineVariables(variables)),
|
|
112
118
|
new BannerPlugin({
|
|
113
119
|
banner,
|
|
@@ -127,7 +133,7 @@ function piletV1WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
127
133
|
}
|
|
128
134
|
|
|
129
135
|
function piletV2WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler: Configuration) {
|
|
130
|
-
const { name, variables, externals, file, importmap } = options;
|
|
136
|
+
const { name, variables, externals, file, importmap, entry } = options;
|
|
131
137
|
const shortName = name.replace(/\W/gi, '');
|
|
132
138
|
const jsonpFunction = `pr_${shortName}`;
|
|
133
139
|
const plugins = [];
|
|
@@ -139,6 +145,38 @@ function piletV2WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler:
|
|
|
139
145
|
const banner = `//@pilet v:2(webpackChunk${jsonpFunction},${JSON.stringify(dependencies)})`;
|
|
140
146
|
|
|
141
147
|
plugins.push(
|
|
148
|
+
new SheetPlugin(piletCss, name, entry),
|
|
149
|
+
new DefinePlugin(getDefineVariables(variables)),
|
|
150
|
+
new BannerPlugin({
|
|
151
|
+
banner,
|
|
152
|
+
entryOnly: true,
|
|
153
|
+
include: file,
|
|
154
|
+
raw: true,
|
|
155
|
+
}),
|
|
156
|
+
new SystemJSPublicPathWebpackPlugin(),
|
|
157
|
+
);
|
|
158
|
+
|
|
159
|
+
compiler.plugins = [...compiler.plugins, ...plugins];
|
|
160
|
+
compiler.output.uniqueName = `${jsonpFunction}`;
|
|
161
|
+
compiler.output.library = { type: 'system' };
|
|
162
|
+
|
|
163
|
+
return compiler;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function piletV3WebpackConfigEnhancer(options: SchemaEnhancerOptions, compiler: Configuration) {
|
|
167
|
+
const { name, variables, externals, file, importmap, entry } = options;
|
|
168
|
+
const shortName = name.replace(/\W/gi, '');
|
|
169
|
+
const jsonpFunction = `pr_${shortName}`;
|
|
170
|
+
const plugins = [];
|
|
171
|
+
|
|
172
|
+
withExternals(compiler, externals);
|
|
173
|
+
setEnvironment(variables);
|
|
174
|
+
|
|
175
|
+
const dependencies = getDependencies(importmap, compiler);
|
|
176
|
+
const banner = `//@pilet v:3(webpackChunk${jsonpFunction},${JSON.stringify(dependencies)})`;
|
|
177
|
+
|
|
178
|
+
plugins.push(
|
|
179
|
+
new StylesPlugin(piletCss, entry),
|
|
142
180
|
new DefinePlugin(getDefineVariables(variables)),
|
|
143
181
|
new BannerPlugin({
|
|
144
182
|
banner,
|
|
@@ -178,6 +216,8 @@ export const piletWebpackConfigEnhancer = (details: PiletWebpackConfigEnhancerOp
|
|
|
178
216
|
return piletV1WebpackConfigEnhancer(options, compiler);
|
|
179
217
|
case 'v2':
|
|
180
218
|
return piletV2WebpackConfigEnhancer(options, compiler);
|
|
219
|
+
case 'v3':
|
|
220
|
+
return piletV3WebpackConfigEnhancer(options, compiler);
|
|
181
221
|
case 'none':
|
|
182
222
|
default:
|
|
183
223
|
return piletVxWebpackConfigEnhancer(options, compiler);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getOptions } from 'loader-utils';
|
|
2
|
+
|
|
3
|
+
export default function stylesLoader() {
|
|
4
|
+
const { cssName } = getOptions(this);
|
|
5
|
+
const debug = process.env.NODE_ENV === 'development';
|
|
6
|
+
return [
|
|
7
|
+
`const u = ${JSON.stringify(cssName)}`,
|
|
8
|
+
`export const styles = [${debug ? 'u+"?_="+Math.random()' : 'u'}]`,
|
|
9
|
+
].join(';');
|
|
10
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { Compilation } from 'webpack';
|
|
3
|
+
import { RawSource } from 'webpack-sources';
|
|
4
|
+
|
|
5
|
+
export default class StylesPlugin {
|
|
6
|
+
private loaderPath: string;
|
|
7
|
+
|
|
8
|
+
constructor(private cssName: string, private entryName: string) {
|
|
9
|
+
this.loaderPath = resolve(__dirname, `StylesLoader?cssName=${cssName}!`);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
apply(compiler) {
|
|
13
|
+
const { entry } = compiler.options;
|
|
14
|
+
|
|
15
|
+
entry[this.entryName].import = [this.loaderPath, ...entry[this.entryName].import];
|
|
16
|
+
|
|
17
|
+
compiler.hooks.compilation.tap('StylesPlugin', (compilation: Compilation) => {
|
|
18
|
+
if (!compilation.compiler.parentCompilation) {
|
|
19
|
+
compilation.hooks.processAssets.tap(
|
|
20
|
+
{
|
|
21
|
+
name: 'StylesPlugin',
|
|
22
|
+
stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,
|
|
23
|
+
},
|
|
24
|
+
(assets) => {
|
|
25
|
+
if (!assets[this.cssName]) {
|
|
26
|
+
const source = new RawSource('');
|
|
27
|
+
compilation.emitAsset(this.cssName, source);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/webpack/common.ts
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import * as MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
2
2
|
import { progress, logReset, log } from 'piral-cli/utils';
|
|
3
3
|
import { RuleSetRule, ProgressPlugin, WebpackPluginInstance, Configuration } from 'webpack';
|
|
4
|
-
import SheetPlugin from '../plugins/SheetPlugin';
|
|
5
4
|
|
|
6
5
|
const piletCss = 'main.css';
|
|
7
6
|
|
|
8
|
-
function getStyleLoaders(
|
|
9
|
-
if (
|
|
7
|
+
export function getStyleLoaders(useExtractLoader: boolean) {
|
|
8
|
+
if (useExtractLoader) {
|
|
10
9
|
return [MiniCssExtractPlugin.loader];
|
|
11
10
|
} else {
|
|
12
11
|
return [require.resolve('style-loader')];
|
|
@@ -26,12 +25,12 @@ export function getVariables(): Record<string, string> {
|
|
|
26
25
|
}, {});
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
export function getPlugins(plugins: Array<
|
|
28
|
+
export function getPlugins(plugins: Array<WebpackPluginInstance>, pilet?: string) {
|
|
30
29
|
const otherPlugins: Array<WebpackPluginInstance> = [
|
|
31
30
|
new MiniCssExtractPlugin({
|
|
32
31
|
filename: pilet ? piletCss : '[name].[fullhash:6].css',
|
|
33
32
|
chunkFilename: '[id].[chunkhash:6].css',
|
|
34
|
-
})
|
|
33
|
+
}),
|
|
35
34
|
];
|
|
36
35
|
|
|
37
36
|
if (process.env.WEBPACK_PROGRESS) {
|
|
@@ -49,16 +48,10 @@ export function getPlugins(plugins: Array<any>, production: boolean, pilet?: str
|
|
|
49
48
|
);
|
|
50
49
|
}
|
|
51
50
|
|
|
52
|
-
if (production && pilet) {
|
|
53
|
-
const name = process.env.BUILD_PCKG_NAME;
|
|
54
|
-
otherPlugins.push(new SheetPlugin(piletCss, name, pilet) as any);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
51
|
return plugins.concat(otherPlugins);
|
|
58
52
|
}
|
|
59
53
|
|
|
60
|
-
export function getRules(
|
|
61
|
-
const styleLoaders = getStyleLoaders(production);
|
|
54
|
+
export function getRules(styleLoaders: Array<string>): Array<RuleSetRule> {
|
|
62
55
|
const nodeModules = /node_modules/;
|
|
63
56
|
const babelLoader = {
|
|
64
57
|
loader: require.resolve('babel-loader'),
|
package/src/webpack/pilet.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { PiletBuildHandler } from 'piral-cli';
|
|
|
2
2
|
import * as TerserPlugin from 'terser-webpack-plugin';
|
|
3
3
|
import * as CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
|
4
4
|
import type { PiletSchemaVersion, SharedDependency } from 'piral-cli';
|
|
5
|
-
import { getRules, getPlugins, extensions, getVariables, DefaultConfiguration } from './common';
|
|
5
|
+
import { getRules, getPlugins, extensions, getVariables, DefaultConfiguration, getStyleLoaders } from './common';
|
|
6
6
|
import { piletWebpackConfigEnhancer } from '../enhancers/pilet-webpack-config-enhancer';
|
|
7
7
|
import { resolve } from 'path';
|
|
8
8
|
import { runWebpack } from './bundler-run';
|
|
@@ -39,6 +39,8 @@ async function getConfig(
|
|
|
39
39
|
variables: getVariables(),
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
+
const styleLoaders = getStyleLoaders(true);
|
|
43
|
+
|
|
42
44
|
return [
|
|
43
45
|
{
|
|
44
46
|
devtool: sourceMaps ? (develop ? 'cheap-module-source-map' : 'source-map') : false,
|
|
@@ -63,7 +65,7 @@ async function getConfig(
|
|
|
63
65
|
},
|
|
64
66
|
|
|
65
67
|
module: {
|
|
66
|
-
rules: getRules(
|
|
68
|
+
rules: getRules(styleLoaders),
|
|
67
69
|
},
|
|
68
70
|
|
|
69
71
|
optimization: {
|
|
@@ -85,7 +87,7 @@ async function getConfig(
|
|
|
85
87
|
],
|
|
86
88
|
},
|
|
87
89
|
|
|
88
|
-
plugins: getPlugins([],
|
|
90
|
+
plugins: getPlugins([], entry),
|
|
89
91
|
},
|
|
90
92
|
enhance,
|
|
91
93
|
];
|
package/src/webpack/piral.ts
CHANGED
|
@@ -5,7 +5,7 @@ import * as CssMinimizerPlugin from 'css-minimizer-webpack-plugin';
|
|
|
5
5
|
import { getFreePort } from 'piral-cli/utils';
|
|
6
6
|
import { resolve } from 'path';
|
|
7
7
|
import { runWebpack } from './bundler-run';
|
|
8
|
-
import { getRules, getPlugins, extensions, getVariables, DefaultConfiguration } from './common';
|
|
8
|
+
import { getRules, getPlugins, extensions, getVariables, DefaultConfiguration, getStyleLoaders } from './common';
|
|
9
9
|
import { html5EntryWebpackConfigEnhancer } from '../enhancers/html5-entry-webpack-config-enhancer';
|
|
10
10
|
import { piralInstanceWebpackConfigEnhancer } from '../enhancers/piral-instance-webpack-config-enhancer';
|
|
11
11
|
import { hmrWebpackConfigEnhancer } from '../enhancers/hmr-webpack-config-enhancer';
|
|
@@ -39,6 +39,8 @@ async function getConfig(
|
|
|
39
39
|
}),
|
|
40
40
|
].reduceRight((acc, val) => val(acc), options);
|
|
41
41
|
|
|
42
|
+
const styleLoaders = getStyleLoaders(production);
|
|
43
|
+
|
|
42
44
|
return [
|
|
43
45
|
{
|
|
44
46
|
devtool: sourceMaps ? (develop ? 'cheap-module-source-map' : 'source-map') : false,
|
|
@@ -59,7 +61,7 @@ async function getConfig(
|
|
|
59
61
|
},
|
|
60
62
|
|
|
61
63
|
module: {
|
|
62
|
-
rules: getRules(
|
|
64
|
+
rules: getRules(styleLoaders),
|
|
63
65
|
},
|
|
64
66
|
|
|
65
67
|
optimization: {
|
|
@@ -75,7 +77,7 @@ async function getConfig(
|
|
|
75
77
|
],
|
|
76
78
|
},
|
|
77
79
|
|
|
78
|
-
plugins: getPlugins([]
|
|
80
|
+
plugins: getPlugins([]),
|
|
79
81
|
},
|
|
80
82
|
enhance,
|
|
81
83
|
];
|