import path from 'path' ; import webpack , { Configuration } from 'webpack' ; import { LoaderConfOptions } from 'kkt' ; import lessModules from '@kkt/less-modules' ; import rawModules from '@kkt/raw-modules' ; import scopePluginOptions from '@kkt/scope-plugin-options' ; import pkg from './package.json' ; export default ( conf , env , options ) => { conf = rawModules ( conf , env , { ... options , test : /\.(txt|md)$/i , esModule : true , } ) ; conf = scopePluginOptions ( conf , env , { ... options , allowedFiles : [ path . resolve ( process . cwd ( ) , 'src' ) , path . resolve ( process . cwd ( ) , 'README.md' ) ] , } ) ; conf = lessModules ( conf , env , options ) ; conf . plugins ! . push ( new webpack . DefinePlugin ( { VERSION : JSON . stringify ( pkg . version ) , } ) ) ; if ( env === 'production' ) { conf . optimization = { ... conf . optimization , splitChunks : { cacheGroups : { reactvendor : { test : /[\\/]node_modules[\\/](react|react-dom)[\\/]/ , name : 'react-vendor' , chunks : 'all' , } , refractor : { test : /[\\/]node_modules[\\/](refractor)[\\/]/ , name : 'refractor-vendor' , chunks : 'all' , } , codemirror : { test : /[\\/]node_modules[\\/](@codemirror)[\\/]/ , name : 'codemirror-vendor' , chunks : 'all' , } , } , } , } ; conf . output = { ... conf . output , publicPath : './' } ; } return conf ; } ;