npm - 忘记 npm install 中的 --save - 如何在 package.json 中识别和添加缺失的包?
问题描述
删除 package-lock.json 和 node_modules 后,我遇到了几个问题,并发现我安装了很多没有 --save 或 --save-dev 的包。
我现在想知道如何解决这个问题。我的项目中甚至不需要我的一些包。
我需要确定哪些包是有用的,所以我使用了 depcheck https://www.npmjs.com/package/depcheck,它并不能完全按照我的意愿工作,因为实际上使用了一些“未使用的 devDependencies”,而且我不要认为缺少的依赖项在这里......
depcheck .
unused dependencies
depcheck
instafeed.js
leaflet
leaflet.icon.glyph
v-autocomplete
vue2-leaflet
unused devDependencies
autoprefixer
browser-jsonp
css-mqpacker
cssnano
gulp
gulp-postcss
gulp-sass
laue
lodash.orderby
postcss-assets
resolve-url-loader
sass
sass-loader
v-datatable-light
vee-validate
vue-bootstrap-datetimepicker
vue-country-region-select
vue-instagram
vue-resource
vue-slider-component
vue-stack-grid
vue-star-rating
vue-tel-input
vuejs-datepicker
missing dependencies
laravel-elixir
react
react-dom
例如,我遇到了很多关于 postcss-loader、css-loader、style-loader 等的错误,而这些根本不会出现在这里。而且我的项目在 vuejs 中,所以我不明白 react 在这里做什么......
所以我想用它们的实际版本识别丢失的包(可能来自 package-lock.json?),并将它们保存在 package.json 中。
这可能吗?
非常感谢,这些会救我的命:D
编辑:我看到这篇文章How to npm install --save all packages already installed? 像这样的 npm install ls node_modules
--save 将是一个好的开始,但我想添加一个版本(不再工作)
[编辑] 感谢您的回答,我在 test.js 文件中添加并执行了它(节点 test.js)
const fs = require('fs');
const packageLock = require('./package-lock.json');
const package = require('./package.json');
package.dependencies = Object.entries(packageLock.dependencies)
.reduce((deps, [dep, { version }]) => Object.assign(deps, { [dep]: version }), {});
fs.writeFileSync('./package-new.json', JSON.stringify(package, null, 2));
现在我有一个包含所有依赖项的文件,并且可以将必要的依赖项添加到我的 package.json 文件中。
解决方案
像这样的东西怎么样npm install --save $(ls node_modules)
推荐阅读
- dataframe - Pyspark中从字符串数据类型到数组(映射(数组))数据类型的模式转换
- activemq-artemis - 如何在 Artemis 集群周围正确配置多播消息重新分发
- magento - 使用 magento 1.9 的运输服务获取订单跟踪号
- sql - 计算数据集不同行中日期之间的日期差异
- php - MYSQL 为每个新用户创建一行
- hyperledger-fabric - 我的 connectionprofile.json 文件有什么问题?
- sql - 从过去一周插入的表中选择行
- node.js - 从 CRA 构建创建一个 npm 包
- javascript - 为什么我的 selectpicker 字段没有直观地更新选项?
- android-studio - 添加 jar 库后,Android Studio 卡住了将应用程序安装到设备