如何解决npm run watch无法读取“地图”属性的错误未定义
问题:
运行命令npm run watch
会引发错误并显示错误
54% building 35/41 modules 6 active /app/docroot/themes/custom/mytheme/node_modules/css-loader/index.js??ref--10-2!/app/docroot/themes/custom/mytheme/node_modules/postcss-loader/src/index.js??postcss5!/app/docroot/themes
ERROR Failed to compile with 1 errors 1:25:50 AM
error
Cannot read property 'map' of undefined
15 assets
ERROR in Cannot read property 'map' of undefined
[browsersync] Proxying: https://ps.lndo.site
仅当我的webpack.mix.js文件中包含以下代码时,才会发生错误:
mix.imagemin({
patterns: [{
from: '**/*.{png,gif,jpg,jpeg,svg}',to: 'images/',context: 'src/images/'
},{
from: '**/*.{png,context: 'src/components/'
}]
});
删除上面的代码片段会删除该错误,但是该项目的先前开发人员有此原因。
由于安全漏洞,我最近进行了更新,并设法调试了一个不同的问题,即copy Plugin引入了一项重大更改(已在上面的代码中更新)。但是,我不确定所有配置是否正确。
我尝试过: 从命令行
rm -rf node_modules
rm package.lock
npm cache clean --force
npm install
这些是package.json中截至2020年8月27日的软件包
"devDependencies": {
"bootstrap": "^4.3.1","browser-sync": "^2.26.12","browser-sync-webpack-plugin": "^2.2.2","copy-webpack-plugin": "^6.0.3","cross-env": "^7.0.2","husky": "^4.2.5","imagemin-webpack-plugin": "^2.4.2","jquery": "^3.5.1","laravel-mix": "^5.0.4","laravel-mix-imagemin": "^1.0.3","popper.js": "^1.16.1","pretty-quick": "^2.0.1","resolve-url-loader": "^3.1.1","sass": "^1.26.10","sass-loader": "^8.0.2","vue-template-compiler": "^2.6.11"
},"dependencies": {
"throttle-debounce": "^2.3.0"
}
更新的软件包如下
"browser-sync": "^2.26.7","copy-webpack-plugin": "^5.1.1","husky": "^4.2.3","jquery": "^3.5.0","sass": "^1.26.3","throttle-debounce": "^2.1.0"
解决方法
在我看来,这看起来像是laravel-mix-imagemin插件中的错误。其NPM页面显示"The patterns parameter is automatically converted to an array"。但这与您正在使用的copy-webpack-plugin^6
不兼容(laravel-mix-imagemin在后台使用),因为版本6不再接受数组。 (很遗憾,laravel-mix-imagemin插件未正确列出其依赖项及其版本...)
顺便说一句:我基本上遇到了同样的问题,并且您收到的错误消息是一场灾难。
,您可能对webpack的版本有疑问。这是我能做出的最好的猜测。如果此代码之前有效,则可能是这样。
,没有找到一个很好的答案,因为现在从Webpack mix中删除了imagemin配置。解决了编译问题,但不能解决我的原始问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。