无法读取';的属性时出现npm运行监视错误;地图';未定义
问题: 运行命令无法读取';的属性时出现npm运行监视错误;地图';未定义,npm,webpack,imagemin,Npm,Webpack,Imagemin,问题: 运行命令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 E
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,gif,jpg,jpeg,svg}',
to: 'images/',
context: 'src/components/'
}]
});
删除上面的代码片段会删除错误,但此项目上以前的开发人员有此错误是有原因的
我最近更新了由于安全漏洞,并设法调试一个不同的问题,复制插件引入了一个突破性的变化(已在上面的代码中更新)。但是,我不确定所有配置是否正确
这是我尝试过的:
从命令行
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"
您可能在Web包版本方面遇到问题。这是我能做的最好的猜测。如果这段代码以前工作过,那么这可能是一种可能性。没有找到一个很好的答案,因为现在刚刚从webpack mix中删除了imagemin配置。修复了编译问题,但没有解决我原来的问题。对我来说,这看起来像是laravel mix imagemin插件中的一个bug。它的NPM页面上说。但这不符合您正在使用的
复制网页包插件^6
(由laravel mix imagemin在引擎盖下使用),因为版本6不再接受阵列。(太糟糕了,laravel mix imagemin插件没有正确列出其依赖项及其版本…)
顺便说一句:我基本上遇到了同样的问题,你收到的错误消息是一场灾难。你更新了哪些软件包?@AndySong用软件包更新了我的问题。我遇到了同样的问题,偶然发现了这个答案,这为我解决了问题。你救了我一个晚上!