Using ExtractTextPlugin for Webpack, how do you not extract css and create an empty file with a flag? -
basically want extract css in production, want leave in javascript file in development mode.
this can have sourcemap working shows sass files used.
i want able have:
<link href="~/dist/css/site.css" rel="stylesheet" /> <script type="text/javascript" src="~/dist/js/manifest.js"></script> <script type="text/javascript" src="~/dist/js/css.js"></script> documentation bit thin on ground.
so in dev mode site.css empty , won't cause error if didn't exist. css.js used style , source mapping.
in production mode css.js exist not because css extracted. means css load nice , , minified in site.css have no mapping.
what did this: installed , required webpack-create-file-plugin created css directory .empty file in because directory must exist.
this how have done it:
const extractsass = new extracttextplugin("css/site.css"); const sassoptions = removeempty([ ifnotprod({ loader: "style-loader" }), { loader: "css-loader", options: { sourcemap: ifnotprod() } }, { loader: "sass-loader", options: { outputstyle: ifprod("compressed", "expanded"), sourcemap: ifnotprod() } } ]); the sass rule looks this:
{ test: /\.scss$/, use: ifprod(extractsass.extract({ use: sassoptions, fallback: "style-loader" }), sassoptions) } added plugins ifnotprod(new createfileplugin({files: ["css/site.css"]})) , ifprod(extractsass)
Comments
Post a Comment