Sha256: 2a8ee943dc4d7220c29fdc55bf9b26f51bf229a631517091b58740c21e1dd5bb

Contents?: true

Size: 935 Bytes

Versions: 4

Compression:

Stored size: 935 Bytes

Contents

/* eslint global-require: 0 */
const { canProcess, moduleExists } = require("./helpers")
const inliningCss = require("./inliningCss")

const getStyleRule = (test, preprocessors = []) => {
  if (moduleExists("css-loader")) {
    const tryPostcss = () =>
      canProcess("postcss-loader", (loaderPath) => ({
        loader: loaderPath,
        options: { sourceMap: true }
      }))

    // style-loader is required when using css modules with HMR on the webpack-dev-server

    const use = [
      inliningCss ? "style-loader" : require("mini-css-extract-plugin").loader,
      {
        loader: require.resolve("css-loader"),
        options: {
          sourceMap: true,
          importLoaders: 2,
          modules: {
            auto: true
          }
        }
      },
      tryPostcss(),
      ...preprocessors
    ].filter(Boolean)

    return {
      test,
      use
    }
  }

  return null
}

module.exports = getStyleRule

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
shakapacker-8.2.0 package/utils/getStyleRule.js
shakapacker-8.1.0 package/utils/getStyleRule.js
shakapacker-8.0.2 package/utils/getStyleRule.js
shakapacker-8.0.1 package/utils/getStyleRule.js