@ -1,13 +1,12 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
const { existsSync } = require ( 'fs' ) ;
const webpack = require ( 'webpack' ) ;
const { basename , dirname , join , relative , resolve , sep } = require ( 'path' ) ;
const { sync } = require ( 'glob' ) ;
const ExtractTextPlugin = require ( 'extract-text-webpack-plugin' ) ;
const ManifestPlugin = require ( 'webpack-manifest-plugin' ) ;
const extname = require ( 'path-complete-extname' ) ;
const { env , settings , output , loadersDir } = require ( './configuration.js' ) ;
const { env , settings , themes , output, loadersDir } = require ( './configuration.js' ) ;
const localePackPaths = require ( './generateLocalePacks' ) ;
const extensionGlob = ` **/*{ ${ settings . extensions . join ( ',' ) } }* ` ;
@ -15,20 +14,25 @@ const entryPath = join(settings.source_path, settings.source_entry_path);
const packPaths = sync ( join ( entryPath , extensionGlob ) ) ;
const entryPacks = [ ... packPaths , ... localePackPaths ] . filter ( path => path !== join ( entryPath , 'custom.js' ) ) ;
const customApplicationStyle = resolve ( join ( settings . source_path , 'styles/custom.scss' ) ) ;
const originalApplicationStyle = resolve ( join ( settings . source_path , 'styles/application.scss' ) ) ;
const themePaths = Object . keys ( themes ) . reduce (
( themePaths , name ) => {
themePaths [ name ] = resolve ( join ( settings . source_path , themes [ name ] ) ) ;
return themePaths ;
} , { } ) ;
module . exports = {
entry : entryPacks . reduce (
( map , entry ) => {
const localMap = map ;
let namespace = relative ( join ( entryPath ) , dirname ( entry ) ) ;
if ( namespace === join ( '..' , '..' , '..' , 'tmp' , 'packs' ) ) {
namespace = '' ; // generated by generateLocalePacks.js
}
localMap [ join ( namespace , basename ( entry , extname ( entry ) ) ) ] = resolve ( entry ) ;
return localMap ;
} , { }
entry : Object . assign (
entryPacks . reduce (
( map , entry ) => {
const localMap = map ;
let namespace = relative ( join ( entryPath ) , dirname ( entry ) ) ;
if ( namespace === join ( '..' , '..' , '..' , 'tmp' , 'packs' ) ) {
namespace = '' ; // generated by generateLocalePacks.js
}
localMap [ join ( namespace , basename ( entry , extname ( entry ) ) ) ] = resolve ( entry ) ;
return localMap ;
} , { }
) , themePaths
) ,
output : {
@ -67,10 +71,6 @@ module.exports = {
] ,
resolve : {
alias : {
'mastodon-application-style' : existsSync ( customApplicationStyle ) ?
customApplicationStyle : originalApplicationStyle ,
} ,
extensions : settings . extensions ,
modules : [
resolve ( settings . source_path ) ,