清理 node_modules 后缺少包

Posted

技术标签:

【中文标题】清理 node_modules 后缺少包【英文标题】:Missing packages after cleaning node_modules 【发布时间】:2019-10-20 03:48:17 【问题描述】:

我遇到了一个问题:npm run watch 在 10% 后卡住了,所以我删除了 node_modules 目录和 package-lock.json 但我想我在没有使用 --save-dev 的情况下使用 npm install 安装了模块,并且在重新安装了其中几个之后,我仍然收到警告并且无法确定这里缺少哪个包......

WARNING in ./resources/js/components/common/ContenuComponent.vue?vue&type=style&index=0&id=1a3ffd6c&scoped=true&lang=css& (./node_modules/css-loader/dist/cjs.js??ref--6-1!./node_modules/laravel-mix/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/common/ContenuComponent.vue?vue&type=style&index=0&id=1a3ffd6c&scoped=true&lang=css&)
Module Warning (from ./node_modules/css-loader/dist/cjs.js):
Warning

(476:2) Unable to find uri in 'background:url() no-repeat top left black'
 @ ./resources/js/components/common/ContenuComponent.vue?vue&type=style&index=0&id=1a3ffd6c&scoped=true&lang=css& (./node_modules/style-loader!./node_modules/css-loader/dist/cjs.js??ref--6-1!./node_modules/laravel-mix/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-2!./node_modules/vue-loader/lib??vue-loader-options!./resources/js/components/common/ContenuComponent.vue?vue&type=style&index=0&id=1a3ffd6c&scoped=true&lang=css&) 2:14-388
 @ ./resources/js/components/common/ContenuComponent.vue?vue&type=style&index=0&id=1a3ffd6c&scoped=true&lang=css&
 @ ./resources/js/components/common/ContenuComponent.vue
 @ ./resources/js/app.js
 @ multi ./resources/js/app.js ./resources/sass/app.scss

我做到了:

npm install postcss-loader --save-dev

npm install style-loader --save-dev

npm install css-loader --save-dev

npm install file-loader --save-dev

npm install vue-loader --save-dev

有什么方法可以确定我缺少什么? 非常感谢!

【问题讨论】:

【参考方案1】:

当您删除 package-lock.json 时,您将删除有关之前安装的每个软件包的特定版本的引用。我的猜测是css-loader 模块中发布了一个问题,这似乎是 Laravel 依赖项的依赖项。

最简单的解决方法是恢复 package-lock.json,再次删除 node_modules 并使用 npm install 重新安装。

【讨论】:

我在我的出价中找到了它(我没想到它...... ooouf)并且它有效,非常感谢。我现在从我的 gitignore 中删除它!【参考方案2】:

根据您提供的信息,您可以尝试的方法很少。您可以尝试 npm cache clean 或 npm cache clean --f (这是一个强制,它会询问您是否知道自己在做什么,您可以继续强制执行)。清理缓存后,您可以尝试再次运行 npm install。还要检查您的 NodeJS 版本,并确保您使用的任何软件包也支持该版本。 Node -V 并检查并确保 css 加载器支持您的节点版本。

【讨论】:

谢谢!不幸的是, npm cache clean --f 没有用。 "css-loader": "^2.1.1";节点 v10.15.3。我不认为我改变了我的节点版本,但实际上也许我有其他插件的最新版本......很难找出它错了什么:/【参考方案3】:

在我认为它已经修复之后,我今天又遇到了这个问题(实际上最糟糕的是,这次是一个错误)。所以我回到 package-lock.json 旧版本,经过多次尝试,又浪费了几个小时,它成功了。

我想这会再次发生,显然我不能这样做,因为我将来会添加其他包。我想知道是否有任何方法可以在 package.json 开发依赖项中添加所有缺少的包?我不知道如何识别它们?

似乎 npm install ls node_modules --save 几年前就开始工作了,所以我正在尝试寻找类似的东西,但可能在 package-lock.json 中阅读(我是在做梦吗?:))

非常感谢

【讨论】:

以上是关于清理 node_modules 后缺少包的主要内容,如果未能解决你的问题,请参考以下文章

你的硬盘已满,清理 node_modules 来腾出空间

写了一个清理node_modules的工具

npm 安装,缺少 node_modules 文件夹

Local package.json exists, but node_modules missing, did you mean to install? 缺少node_modules

npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限

macOS 安装nvm