забыть - сохранить в npm install - как определить и добавить недостающие пакеты в package.json? - PullRequest
1 голос
/ 06 июня 2019

У меня появилось несколько проблем после того, как я удалил 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.

...