UNPKG

5.29 kBJavaScriptView Raw
1'use strict';
2Object.defineProperty(exports, "__esModule", { value: true });
3var $ = require("./variables");
4var ts_loader_1 = require("./webpack-loaders/ts-loader");
5var tsx_loader_1 = require("./webpack-loaders/tsx-loader");
6function 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}
143exports.getBaseWebpackConfigForManifestMetadata = getBaseWebpackConfigForManifestMetadata;
144exports.cacheKeys = {
145 //buildManifestMetadatas: "buildManifestMetadatas",
146 bundleManifests: "bundleManifests"
147};