清理 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 后缺少包的主要内容,如果未能解决你的问题,请参考以下文章
Local package.json exists, but node_modules missing, did you mean to install? 缺少node_modules
npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写访问权限