最近将 webpack 开发模式下对 scss
的处理增加了 style-loader
,然后构建过程中会出现类似如下警告信息:
ModuleDependencyWarning: export ‘default’ (imported as ‘style’) was not found in ‘./style.scss’ (possible exports: default)
出现该提示涉及的具体源码类似如下:
1 2 3 | import * as style from './style.scss' ; console.log(style.Abc); |
在 webpack 的 github issues 里搜索到了类似问题:
https://github.com/webpack/webpack/issues/12558
其中主要指出其原因为 esModule
的问题。将 options.esModule
设置为 false 即可。
再结合 style-loader
官方 README.md 中的 esModule 参数介绍可以得知, esModule
参数默认为 true,在实际的构建过程中可以得到 tree-shaking
的效果。
于是可以有如下两种解决方法:
方法一:
将 import * as xxx from './xxx.css'
改为 import { Abc } from './xxx.css'
方式。
方法二:
设置 esModule
参数为 false
,改为使用 CommonJS modules
模式。示例:
1 2 3 4 5 6 7 8 9 10 11 | { test: /\.scss$/, use: [ { loader: 'style-loader' , options: { esModule: false , }, }, ] } |