@ -3,6 +3,7 @@
/* eslint global-require: 0 */
/* eslint global-require: 0 */
/* eslint import/no-dynamic-require: 0 */
/* eslint import/no-dynamic-require: 0 */
const { existsSync } = require ( 'fs' ) ;
const webpack = require ( 'webpack' ) ;
const webpack = require ( 'webpack' ) ;
const { basename , dirname , join , relative , resolve , sep } = require ( 'path' ) ;
const { basename , dirname , join , relative , resolve , sep } = require ( 'path' ) ;
const { sync } = require ( 'glob' ) ;
const { sync } = require ( 'glob' ) ;
@ -16,6 +17,9 @@ const extensionGlob = `**/*{${paths.extensions.join(',')}}*`;
const packPaths = sync ( join ( paths . source , paths . entry , extensionGlob ) ) ;
const packPaths = sync ( join ( paths . source , paths . entry , extensionGlob ) ) ;
const entryPacks = [ ] . concat ( packPaths ) . concat ( localePackPaths ) ;
const entryPacks = [ ] . concat ( packPaths ) . concat ( localePackPaths ) ;
const customApplicationStyle = resolve ( join ( paths . source , 'styles/custom.scss' ) ) ;
const originalApplicationStyle = resolve ( join ( paths . source , 'styles/application.scss' ) ) ;
module . exports = {
module . exports = {
entry : entryPacks . reduce (
entry : entryPacks . reduce (
( map , entry ) => {
( map , entry ) => {
@ -48,17 +52,13 @@ module.exports = {
name : 'common' ,
name : 'common' ,
minChunks : ( module , count ) => {
minChunks : ( module , count ) => {
const reactIntlPathRegexp = new RegExp ( ` node_modules \\ ${ sep } react-intl ` ) ;
const reactIntlPathRegexp = new RegExp ( ` node_modules \\ ${ sep } react-intl ` ) ;
if ( module . resource && reactIntlPathRegexp . test ( module . resource ) ) {
if ( module . resource && reactIntlPathRegexp . test ( module . resource ) ) {
// skip react-intl because it's useless to put in the common chunk,
// skip react-intl because it's useless to put in the common chunk,
// e.g. because "shared" modules between zh-TW and zh-CN will never
// e.g. because "shared" modules between zh-TW and zh-CN will never
// be loaded together
// be loaded together
return false ;
return false ;
}
}
const fontAwesomePathRegexp = new RegExp ( ` node_modules \\ ${ sep } font-awesome ` ) ;
if ( module . resource && fontAwesomePathRegexp . test ( module . resource ) ) {
// extract vendor css into common module
return true ;
}
return count >= 2 ;
return count >= 2 ;
} ,
} ,
@ -66,6 +66,10 @@ module.exports = {
] ,
] ,
resolve : {
resolve : {
alias : {
'mastodon-application-style' : existsSync ( customApplicationStyle ) ?
customApplicationStyle : originalApplicationStyle ,
} ,
extensions : paths . extensions ,
extensions : paths . extensions ,
modules : [
modules : [
resolve ( paths . source ) ,
resolve ( paths . source ) ,