报错信息:
Invaliad options object.Css Loader has been initialized using an options object that does not match the API scheam.
options has an unknown property 'locakIdentName'.These properties are valid:object{url?,omport?,module?xxxx}
大致意思:选项对象无效。Css加载器已使用与API方案不匹配的选项对象进行初始化。
选项具有未知属性“locakIdentName”。这些属性有效:对象{url?,omport?,模块?xxxx}
解决方案:
错误原因:
这个错误主要是因为 css-loader插件版本的问题,一般来说都是 版本过高导致的。一般 less-loader,sass-loader等都有可能遇到这个问题。
比如说我这个里:
Invaliad options object.Css Loader has been initialized using an options object that does not match the API scheam.
options has an unknown property 'locakIdentName'.These properties are valid:object{url?,omport?,module?xxxx}
绿色背景颜色的就是 主要信息,这个地方有可能是less-loader,sass-loader等等。一般解决方案都是差不多的。
如果出现了 TypeError: this.getOptions is not a function 可以看:TypeError: this.getOptions is not a function 的解决(vue,react)_崽崽的谷雨的博客-CSDN博客
解决方案:
方案一:
这个错误提示是因为在使用 css-loader
时,传入的配置项中有一个不属于其 API schema 的属性 locakIdentName
,导致初始化时出现了错误。 在最新版本的 css-loader
中,localIdentName
被改为了 modules.localIdentName
,因此你需要将 locakIdentName
改为 modules.localIdentName
。 例如,如果你的 css-loader
配置项为:
{
test: /\.css$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
modules: true,
locakIdentName: '[local]___[hash:base64:5]'
}
}
]
}
你需要将其中的 locakIdentName
改为 modules.localIdentName
:
{
test: /\.css$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
modules: {
localIdentName: '[local]___[hash:base64:5]'
}
}
}
]
}
这样就可以解决这个错误了。
我这里修改的css-loader的配置,如果你是 less,sass则需要改成对应的。
方案二、
可以通过降低,对应依赖的版本来解决。至于具体版本 哪个版本 需要看 npm里的 版本图:
比如我的是css-loader 是3.0.0开始改的
less-loser、sass-loader是8.0.0开始改的
所以只需要降低到对应版本之下就行了:
css-loader 可以降低到3之下,具体可以 npm install css-loader@2.1.1
less-loser、sass-loader可以降低到8以下
具体版本可以去npm 里查一下输入插件名搜索一下:
总结:
我其实推荐方案二更直接,因为有的项目不是webpack打包,而且有很多第三方框架 都不暴露配置文件。