У меня появилось несколько проблем после того, как я удалил 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,загрузчик стилей и т. д., и они здесь вообще не отображаются.И мой проект в vuejs, так что я не понимаю, что здесь происходит с реакцией ...
Так что я хотел бы отождествить отсутствующие пакеты (возможно, из package-lock.json?) С их актуальной версией,и сохраните их в package.json.
Это возможно?
Большое спасибо, это спасет мою жизнь: D
РЕДАКТИРОВАТЬ: Я видел этот пост Как установить npm - сохранить все уже установленные пакеты? и что-то вроде этого: npm install ls node_modules
- хорошее начало - сохранение, но я бы хотел добавить версию (больше не работает)
[EDIT] Спасибо за ваши ответы, я добавил это в файл 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.