antd-scss-theme-plugin icon indicating copy to clipboard operation
antd-scss-theme-plugin copied to clipboard

Plugin doesn't work with sass-loader v8 and above and less-loader v6 and above

Open nad182 opened this issue 5 years ago • 2 comments

Spend hours trying to get the plugin to work. Seems like sass-loader and less-loader both changed their options object shapes. I got to the bottom of the issue by exploring antdSassLoader.js and antdLEssLoader.js.

  1. antdSassLoader.js (the error was something like options has an unknown property 'importer') The issue there is that there is no importer prop in options anymore, it's in sassOptions. So should be something like this:
newOptions.sassOptions = {}
newOptions.sassOptions.importer = importer
  1. antdLEssLoader.js (the error was something like options has an unknown property 'modifyVars') The issue here is that modifyVars was moved inside lessOptions prop and you also must pass javascriptEnabled: true (without is the error you're getting is (Inline JavaScript is not enabled. Is it set in your options?) to lessOptions like this:
  const newOptions = _extends({}, options, {
    lessOptions: {
      modifyVars: _extends({}, themeModifyVars, options.modifyVars || {}), 
      javascriptEnabled: true
    }
  });

Without those changes, you're getting a bunch of different errors.

Screenshots of "successful" configs are attached.

Screen Shot 2020-07-28 at 12 20 33 AM Screen Shot 2020-07-28 at 12 19 57 AM

nad182 avatar Jul 28 '20 05:07 nad182

+1

kbouchard avatar Jan 04 '21 15:01 kbouchard

I made a PR but it looks like the author doesn't want to support https://github.com/intoli/antd-scss-theme-plugin/pull/119

As alternative you can use https://github.com/igor-lemon/antd-scss-theme-plugin or full completely craco solution https://github.com/igor-lemon/craco-antd-scss

igor-lemon avatar Jun 14 '22 09:06 igor-lemon