1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var $ = require("./variables");
|
4 | var ts_loader_1 = require("./webpack-loaders/ts-loader");
|
5 | var tsx_loader_1 = require("./webpack-loaders/tsx-loader");
|
6 | function getBaseWebpackConfigForManifestMetadata(entry, bundleOutputDir, wcDomProps, enableTreeShaking) {
|
7 | if (enableTreeShaking === void 0) { enableTreeShaking = false; }
|
8 | return {
|
9 | devtool: false,
|
10 | mode: 'none',
|
11 | context: $.tooling.utils.root(""),
|
12 | entry: entry,
|
13 | cache: {
|
14 | type: "filesystem"
|
15 | },
|
16 | //performance: {
|
17 | // hints: 'error',
|
18 | // maxEntrypointSize: 10000000,
|
19 | // maxAssetSize: 10000000 // ~ 10Mb
|
20 | //},
|
21 | //stats: 'errors-only',
|
22 | stats: {
|
23 | all: false,
|
24 | //modules: true,
|
25 | maxModules: 0,
|
26 | errors: true,
|
27 | },
|
28 | resolve: {
|
29 | extensions: ['.js', '.jsx', '.ts', '.tsx'],
|
30 | //extensions: ['.js', '.jsx', '.ts', '.tsx', '.html', '.vue', '.less', '.styl'],
|
31 | symlinks: false,
|
32 | cacheWithContext: true,
|
33 | descriptionFiles: ['package.json'],
|
34 | alias: {
|
35 | 'vue$': 'vue/dist/vue.esm.js' // Use the full build
|
36 | }
|
37 | },
|
38 | output: {
|
39 | pathinfo: false,
|
40 | path: $.tooling.utils.root(bundleOutputDir),
|
41 | filename: '[name].js'
|
42 | },
|
43 | externals: [
|
44 | function (context, request, callback) {
|
45 | if (request.indexOf("node_modules") > -1 || (/\.(styl|less|css)$/i).test(request)) {
|
46 | return callback(null, 'commonjs ' + request);
|
47 | }
|
48 | callback();
|
49 | }
|
50 | ],
|
51 | //optimization: {
|
52 | // removeAvailableModules: false,
|
53 | // removeEmptyChunks: false,
|
54 | // splitChunks: false,
|
55 | //},
|
56 | module: {
|
57 | noParse: /wwwroot(.*)/,
|
58 | rules: [
|
59 | {
|
60 | parser: {
|
61 | amd: false,
|
62 | harmony: false
|
63 | }
|
64 | }
|
65 | ].concat(ts_loader_1.default(enableTreeShaking), tsx_loader_1.default(enableTreeShaking, wcDomProps), [
|
66 | {
|
67 | test: /\.jsx$/,
|
68 | exclude: /(node_modules|bower_components)/,
|
69 | use: [
|
70 | {
|
71 | loader: 'cache-loader'
|
72 | },
|
73 | {
|
74 | loader: 'babel-loader',
|
75 | options: {
|
76 | cacheDirectory: true,
|
77 | presets: ["@babel/preset-env"],
|
78 | plugins: ["syntax-jsx", "jsx-v-model", "transform-vue-jsx"]
|
79 | }
|
80 | }
|
81 | ]
|
82 | },
|
83 | {
|
84 | test: /\.vue$/,
|
85 | use: [
|
86 | {
|
87 | loader: 'vue-loader',
|
88 | options: {
|
89 | hotReload: false,
|
90 | loaders: {
|
91 | ts: 'ts-loader',
|
92 | sass: 'vue-style-loader!css-loader!sass-loader!less-loader',
|
93 | }
|
94 | }
|
95 | }
|
96 | ]
|
97 | },
|
98 | {
|
99 | test: /\.styl$/,
|
100 | use: [
|
101 | //'style-loader',
|
102 | //'css-loader',
|
103 | 'stylus-loader'
|
104 | ]
|
105 | },
|
106 | {
|
107 | test: /\.less$/,
|
108 | use: [
|
109 | //'style-loader',
|
110 | //'css-loader',
|
111 | 'less-loader'
|
112 | ]
|
113 | },
|
114 | {
|
115 | test: /\.css$/,
|
116 | use: [
|
117 | //'style-loader',
|
118 | {
|
119 | loader: 'css-loader'
|
120 | }
|
121 | ]
|
122 | },
|
123 | {
|
124 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
|
125 | loader: 'url-loader'
|
126 | },
|
127 | {
|
128 | test: /\.(ico|gif|png|jpe?g|svg)$/i,
|
129 | use: [{
|
130 | loader: 'file-loader',
|
131 | options: {
|
132 | name: '[name].[ext]',
|
133 | outputPath: "../images/",
|
134 | publicPath: '/omnia/images/'
|
135 | }
|
136 | }]
|
137 | //loader: 'url-loader'
|
138 | }
|
139 | ])
|
140 | }
|
141 | };
|
142 | }
|
143 | exports.getBaseWebpackConfigForManifestMetadata = getBaseWebpackConfigForManifestMetadata;
|
144 | exports.cacheKeys = {
|
145 | //buildManifestMetadatas: "buildManifestMetadatas",
|
146 | bundleManifests: "bundleManifests"
|
147 | };
|