1- const CopyPlugin = require ( 'copy-webpack-plugin' ) ;
2- const HTMLWebpackPlugin = require ( 'html-webpack-plugin' ) ;
3- const { VueLoaderPlugin } = require ( 'vue-loader' ) ;
4- const VuetifyLoaderPlugin = require ( 'vuetify-loader/lib/plugin' ) ;
5- const { DefinePlugin, ProvidePlugin } = require ( 'webpack' ) ;
6- const ESLintPlugin = require ( 'eslint-webpack-plugin' ) ;
1+ const CopyPlugin = require ( "copy-webpack-plugin" ) ;
2+ const HTMLWebpackPlugin = require ( "html-webpack-plugin" ) ;
3+ const { VueLoaderPlugin } = require ( "vue-loader" ) ;
4+ const { DefinePlugin, ProvidePlugin } = require ( "webpack" ) ;
5+ const ESLintPlugin = require ( "eslint-webpack-plugin" ) ;
76
8- const { join } = require ( ' path' ) ;
7+ const { join } = require ( " path" ) ;
98
10- const codeCheckerApi = require ( ' codechecker-api/package.json' ) ;
11- const apiVersion = codeCheckerApi . version . split ( '.' ) . slice ( 0 , 2 ) . join ( '.' ) ;
9+ const codeCheckerApi = require ( " codechecker-api/package.json" ) ;
10+ const apiVersion = codeCheckerApi . version . split ( "." ) . slice ( 0 , 2 ) . join ( "." ) ;
1211
13- const helpers = require ( ' ./helpers' ) ;
12+ const helpers = require ( " ./helpers" ) ;
1413
1514function sassLoaderOptions ( indentedSyntax = false ) {
1615 return {
17- implementation : require ( 'sass' ) ,
18- additionalData : `@import "~@/variables.scss"` + ( indentedSyntax ? '' : ';' ) ,
19- sassOptions : { indentedSyntax } ,
20- }
16+ api : "modern-compiler" ,
17+ implementation : require ( "sass" ) ,
18+ additionalData : `@use "@/variables.scss"` + ( indentedSyntax ? "" : ";" ) ,
19+ sassOptions : {
20+ indentedSyntax,
21+ quietDeps : true ,
22+ silenceDeprecations : [
23+ "legacy-js-api" ,
24+ "import" ,
25+ "if" ,
26+ "mixed-decls" ,
27+ "color-functions" ,
28+ "global-builtin"
29+ ] ,
30+ } ,
31+ } ;
2132}
2233
2334function cssLoaderOptions ( ) {
2435 return {
2536 esModule : false
26- }
37+ } ;
2738}
2839
2940module . exports = {
30- entry : helpers . root ( ' src' , ' main.js' ) ,
41+ entry : helpers . root ( " src" , " main.js" ) ,
3142 optimization : {
32- moduleIds : ' deterministic' ,
33- runtimeChunk : ' single' ,
43+ moduleIds : " deterministic" ,
44+ runtimeChunk : " single" ,
3445 splitChunks : {
3546 cacheGroups : {
3647 defaultVendors : {
3748 test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
38- name : 'vendors' ,
39- chunks : 'all' ,
49+ name : "vendors" ,
50+ chunks : "all" ,
51+ priority : 10
4052 } ,
53+ vuetify : {
54+ test : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] v u e t i f y [ \\ / ] / ,
55+ name : "vuetify" ,
56+ chunks : "all" ,
57+ priority : 20
58+ }
4159 } ,
4260 } ,
4361 } ,
4462 resolve : {
4563 fallback : {
46- "buffer" : require . resolve ( ' buffer/' ) ,
47- "util" : require . resolve ( ' util/' ) ,
64+ "buffer" : require . resolve ( " buffer/" ) ,
65+ "util" : require . resolve ( " util/" ) ,
4866 } ,
49- unsafeCache : true ,
50- extensions : [ ' .js' , ' .vue' ] ,
67+ unsafeCache : false ,
68+ extensions : [ " .js" , " .vue" ] ,
5169 alias : {
52- '@' : helpers . root ( 'src' ) ,
53- '@cc-api' : helpers . root ( 'src' , 'services' , 'api' ) ,
54- '@cc/auth' : join ( 'codechecker-api' , 'lib' , 'codeCheckerAuthentication.js' ) ,
55- '@cc/auth-types' : join ( 'codechecker-api' , 'lib' , 'authentication_types.js' ) ,
56- '@cc/conf' : join ( 'codechecker-api' , 'lib' , 'configurationService.js' ) ,
57- '@cc/conf-types' : join ( 'codechecker-api' , 'lib' , 'configuration_types.js' ) ,
58- '@cc/db-access' : join ( 'codechecker-api' , 'lib' , 'codeCheckerDBAccess.js' ) ,
59- '@cc/prod' : join ( 'codechecker-api' , 'lib' , 'codeCheckerProductService.js' ) ,
60- '@cc/prod-types' : join ( 'codechecker-api' , 'lib' , 'products_types.js' ) ,
61- '@cc/server-info' : join ( 'codechecker-api' , 'lib' , 'serverInfoService.js' ) ,
62- '@cc/report-server-types' : join ( 'codechecker-api' , 'lib' , 'report_server_types.js' ) ,
63- '@cc/shared-types' : join ( 'codechecker-api' , 'lib' , 'codechecker_api_shared_types.js' ) ,
64- 'thrift' : join ( 'thrift' , 'lib' , 'nodejs' , 'lib' , 'thrift' , 'browser.js' ) ,
65- 'Vuetify' : join ( 'vuetify' , 'lib' , 'components' )
70+ "@" : helpers . root ( "src" ) ,
71+ "@statistics" : helpers . root ( "src" , "components" , "Statistics" ) ,
72+ "@cc-api" : helpers . root ( "src" , "services" , "api" ) ,
73+ "@cc/auth" : join (
74+ "codechecker-api" , "lib" , "codeCheckerAuthentication.js"
75+ ) ,
76+ "@cc/auth-types" : join (
77+ "codechecker-api" , "lib" , "authentication_types.js"
78+ ) ,
79+ "@cc/conf" : join ( "codechecker-api" , "lib" , "configurationService.js" ) ,
80+ "@cc/conf-types" : join (
81+ "codechecker-api" , "lib" , "configuration_types.js"
82+ ) ,
83+ "@cc/db-access" : join (
84+ "codechecker-api" , "lib" , "codeCheckerDBAccess.js"
85+ ) ,
86+ "@cc/prod" : join (
87+ "codechecker-api" , "lib" , "codeCheckerProductService.js"
88+ ) ,
89+ "@cc/prod-types" : join ( "codechecker-api" , "lib" , "products_types.js" ) ,
90+ "@cc/server-info" : join (
91+ "codechecker-api" , "lib" , "serverInfoService.js"
92+ ) ,
93+ "@cc/report-server-types" : join (
94+ "codechecker-api" , "lib" , "report_server_types.js"
95+ ) ,
96+ "@cc/shared-types" : join (
97+ "codechecker-api" , "lib" , "codechecker_api_shared_types.js"
98+ ) ,
99+ "thrift" : join ( "thrift" , "lib" , "nodejs" , "lib" , "thrift" , "browser.js" ) ,
100+ "Vuetify" : join ( "vuetify" , "lib" , "components" ) ,
66101 }
67102 } ,
68103 module : {
69104 rules : [
70105 {
71106 test : / \. j s $ / ,
72- loader : ' babel-loader' ,
73- exclude : [ / n o d e _ m o d u l e s \/ (? ! v u e t i f y ) / ] ,
107+ loader : " babel-loader" ,
108+ exclude : [ / n o d e _ m o d u l e s \/ (? ! v u e t i f y ) / ] ,
74109 options : {
75110 presets : [
76- [ "@babel/preset-env" , {
111+ [ "@babel/preset-env" , {
77112 useBuiltIns : "usage" ,
78113 corejs : 3 ,
79- } ]
114+ } ]
80115 ]
81116 }
82117 } ,
83118 {
84119 test : / \. v u e $ / ,
85- loader : 'vue-loader'
120+ loader : "vue-loader" ,
121+ options : { }
86122 } ,
87123 {
88124 test : / \. c s s $ / ,
89125 use : [
90- ' vue-style-loader' ,
126+ " vue-style-loader" ,
91127 {
92- loader : ' css-loader' ,
128+ loader : " css-loader" ,
93129 options : cssLoaderOptions ( )
94130 } ,
95131 ]
96132 } ,
97133 {
98134 test :/ \. s a s s $ / ,
99135 use : [
100- ' vue-style-loader' ,
136+ " vue-style-loader" ,
101137 {
102- loader : ' css-loader' ,
138+ loader : " css-loader" ,
103139 options : cssLoaderOptions ( )
104140 } ,
105141 {
106- loader : ' sass-loader' ,
142+ loader : " sass-loader" ,
107143 options : sassLoaderOptions ( true )
108144 }
109145 ]
110146 } ,
111147 {
112148 test :/ \. s c s s $ / ,
113149 use : [
114- ' vue-style-loader' ,
150+ " vue-style-loader" ,
115151 {
116- loader : ' css-loader' ,
152+ loader : " css-loader" ,
117153 options : cssLoaderOptions ( )
118154 } ,
119155 {
120- loader : ' sass-loader' ,
156+ loader : " sass-loader" ,
121157 options : sassLoaderOptions ( false )
122158 }
123159 ]
@@ -126,15 +162,15 @@ module.exports = {
126162 test : / \. ( p n g | j p e ? g | g i f ) $ / i,
127163 use : [
128164 {
129- loader : ' file-loader' ,
165+ loader : " file-loader" ,
130166 options : {
131167 esModule : false ,
132- name ( file ) {
133- if ( process . env . NODE_ENV === ' development' ) {
134- return ' [path][name].[ext]' ;
168+ name ( ) {
169+ if ( process . env . NODE_ENV === " development" ) {
170+ return " [path][name].[ext]" ;
135171 }
136172
137- return ' [contenthash].[ext]' ;
173+ return " [contenthash].[ext]" ;
138174 } ,
139175 }
140176 }
@@ -144,10 +180,10 @@ module.exports = {
144180 test : / \. ( w o f f 2 ? | e o t | t t f | o t f ) $ / ,
145181 use : [
146182 {
147- loader : ' file-loader' ,
183+ loader : " file-loader" ,
148184 options : {
149185 limit : 10000 ,
150- name : ' [name].[contenthash:7].[ext]'
186+ name : " [name].[contenthash:7].[ext]"
151187 }
152188 }
153189 ]
@@ -156,47 +192,68 @@ module.exports = {
156192 test : / \. ( m d ) $ / ,
157193 use : [
158194 {
159- loader : ' raw-loader'
195+ loader : " raw-loader"
160196 }
161197 ]
162198 }
163199 ]
164200 } ,
165201 plugins : [
166202 new DefinePlugin ( {
167- 'process.env.CC_API_VERSION' : JSON . stringify ( apiVersion )
203+ "process.env.CC_API_VERSION" : JSON . stringify ( apiVersion ) ,
204+ __VUE_OPTIONS_API__ : true ,
205+ __VUE_PROD_DEVTOOLS__ : false ,
206+ __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ : false
168207 } ) ,
169208 new ProvidePlugin ( {
170- Buffer : [ ' buffer' , ' Buffer' ] ,
209+ Buffer : [ " buffer" , " Buffer" ] ,
171210 } ) ,
172211 new ESLintPlugin ( {
173- extensions : [ 'js' , ' vue' ] ,
174- overrideConfigFile : ' ./.eslintrc.js'
212+ extensions : [ "js" , " vue" ] // ,
213+ // overrideConfigFile: " ./.eslintrc.js"
175214 } ) ,
176215 new VueLoaderPlugin ( ) ,
177- new VuetifyLoaderPlugin ( ) ,
178216 new HTMLWebpackPlugin ( {
179217 showErrors : true ,
180218 cache : true ,
181- title : ' CodeChecker viewer' ,
182- favicon : helpers . root ( ' src' , ' assets' , ' favicon.ico' ) ,
183- template : helpers . root ( ' src' , ' index.html' )
219+ title : " CodeChecker viewer" ,
220+ favicon : helpers . root ( " src" , " assets" , " favicon.ico" ) ,
221+ template : helpers . root ( " src" , " index.html" )
184222 } ) ,
185223 new CopyPlugin ( {
186224 patterns : [
187225 {
188- from : helpers . root ( ' src' , ' assets' , ' userguide' , ' images' ) ,
189- to : helpers . root ( ' dist' , ' images' )
226+ from : helpers . root ( " src" , " assets" , " userguide" , " images" ) ,
227+ to : helpers . root ( " dist" , " images" )
190228 } ,
191229 {
192- from : helpers . root ( ' src' , ' browsersupport.js' ) ,
193- to : helpers . root ( ' dist' )
230+ from : helpers . root ( " src" , " browsersupport.js" ) ,
231+ to : helpers . root ( " dist" )
194232 } ,
195233 {
196- from : helpers . root ( ' src' , ' static.js' ) ,
197- to : helpers . root ( ' dist' )
234+ from : helpers . root ( " src" , " static.js" ) ,
235+ to : helpers . root ( " dist" )
198236 }
199237 ]
200238 } ) ,
201- ]
202- }
239+ ] ,
240+ stats : {
241+ warningsFilter : [
242+ / s a s s - l o a d e r / i,
243+ / D e p r e c a t i o n W a r n i n g / i,
244+ / S a s s D e p r e c a t i o n W a r n i n g / i,
245+ / T h e S a s s i f \( \) s y n t a x i s d e p r e c a t e d / i,
246+ / v u e t i f y .* s a s s / i,
247+ / M o d u l e W a r n i n g .* s a s s - l o a d e r / i
248+ ]
249+ } ,
250+ cache : {
251+ type : "filesystem" ,
252+ buildDependencies : {
253+ config : [ __filename ]
254+ }
255+ } ,
256+ snapshot : {
257+ managedPaths : [ helpers . root ( "node_modules" ) ]
258+ }
259+ } ;
0 commit comments