原代碼為:
module.exports = {
module: {
rules: [
{
test: /\.less$/,
use: [
'style-loader',
'css-loader',
'less-loader',
{
loader: 'postcss-loader',
options: {
plugins: () => [
require('autoprefixer')({
// 設(shè)置瀏覽器兼容的版本
browsers: ["last 2 version", ">1%", "iOS 7"]
})
]
}
}
]
}
]
},
};
以上代碼報錯
ValidationError: Invalid options object. PostCSS Loader has been initialized using an options object that does not match the API schema.
原因是postcss-loader這個版本不支持在webpack.config.js文件中這么寫。
解決辦法:
刪除webpack.config.js中的,options配置。在項目根目錄下新建一個postcss.config.js文件,配置如下:
module.exports = {
plugins: [
require('autoprefixer')({
browsers: ["last 2 version", ">1%", "iOS 7"]
})
]
}
此時,運行你會發(fā)現(xiàn),出現(xiàn)另一個報錯:
Replace Autoprefixer browsers option to Browserslist config.
Use browserslist key in package.json or .browserslistrc file.
Using browsers option can cause errors. Browserslist config can
be used for Babel, Autoprefixer, postcss-normalize and other tools.
If you really need to use option, rename it to overrideBrowserslist.
原因是之前的版本已經(jīng)不支持,browsers屬性,應(yīng)該使用overrideBrowserslist替換,更改如下:
module.exports = {
plugins: [
require('autoprefixer')({
overrideBrowserslist: ["last 2 version", ">1%", "iOS 7"]
})
]
}