Need help with webpack-fix-style-only-entries?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

fqborges
258 Stars 21 Forks ISC License 68 Commits 14 Opened issues

Description

Webpack plugin to solve the problem of having a style only entry (css/sass/less) generating an extra js file.

Services available

!
?

Need anything else?

Contributors list

# 323,789
CSS
Webpack
HTML
44 commits
# 228,258
CSS
Webpack
HTML
Shell
3 commits
# 4,449
JavaScr...
Webpack
HTML
amd
2 commits
# 153,904
CSS
Webpack
HTML
vimeo
1 commit
# 338,332
JavaScr...
CSS
Webpack
1 commit
# 255,266
CSS
Webpack
Shell
Laravel
1 commit
# 254,078
Shell
CSS
Webpack
Angular
1 commit
# 17,959
JavaScr...
React
reactjs
Sass
1 commit
# 99,675
Webpack
HTML
postcss...
Vue.js
1 commit
# 564,707
Node.js
coffees...
CSS
Webpack
1 commit

npm version

webpack-fix-style-only-entries

This is a small plugin developed to solve the problem of having a style only entry (css/sass/less/stylus) generating an extra js file.

:warning: The current package version is not compatible with webpack 5. There is a fork here that is compatible: https://github.com/webdiscus/webpack-remove-empty-scripts

You can find more info by reading the following issues:

  • https://github.com/webpack-contrib/extract-text-webpack-plugin/issues/518
  • https://github.com/webpack-contrib/mini-css-extract-plugin/issues/151

View on: Github - npm

How it works

It just find js files from chunks of css only entries and remove the js file from the compilation.

How to use

install using your package manager of choice: - npm:

npm install -D webpack-fix-style-only-entries
- yarn:
yarn add -D webpack-fix-style-only-entries

Require and add to webpack.config plugins.

Warning: this plugin does not load styles or split your bundles, it just fix chunks of css only entries by removing the (almost) empty js file.

// ... other plugins
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const FixStyleOnlyEntriesPlugin = require("webpack-fix-style-only-entries");

module.exports = { entry: { "main" : "./app/main.js" "styles": ["./common/styles.css", "./app/styles.css"] }, module: { { test: /.css$/, use: [ MiniCssExtractPlugin.loader, 'css-loader', ] }, ] }, plugins: [ new FixStyleOnlyEntriesPlugin(), new MiniCssExtractPlugin({ filename: "[name].[chunkhash:8].css", }), ], };

Options

| Name | Type | Default | Description | |------------|--------------- |----------------------------------------|-------------| | extensions | Array[string] | ["less", "scss", "css", "styl","sass"] | file extensions for styles | | silent | boolean | false | supress logs to console | | ignore | string or RegExp | undefined | match resource to be ignored |

Example config:

// to identify only 'foo' and 'bar' extensions as styles
new FixStyleOnlyEntriesPlugin({ extensions:['foo', 'bar'] }),

Recipes

I use a javascript entry to styles:

Give an especial extension to your file (

.css.js
for example) and configure
new FixStyleOnlyEntriesPlugin({ extensions:['css.js'] })
. See: https://github.com/fqborges/webpack-fix-style-only-entries/issues/8.

I use webpack-hot-middleware:

Configure this plugin as

new FixStyleOnlyEntriesPlugin({ ignore: 'webpack-hot-middleware' })
. See: https://github.com/fqborges/webpack-fix-style-only-entries/issues/12 and https://github.com/fqborges/webpack-fix-style-only-entries/blob/master/test/cases/css-entry-with-ignored-hmr/webpack.config.js.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.