2016-10-14 3 views
0

Как сохранить все установленные модули узла в package.json, не переустанавливая их?Как сохранить все установленные модули узла в package.json?

У меня есть что-то вроде npm init --yes, но я не уверен, что если это сработает.

Спасибо за помощь!

+0

http://stackoverflow.com/questions/10972176/find-the-version-of-an-installed-npm-package –

ответ

1

Я думаю, что нет никакого способа, чтобы получить этот материал с некоторыми встроенными модулями

Но вы можете написать свой собственный код, чтобы получить эту информацию и обновления в в вашем собственном package.json файле

var fs = require("fs"); 

function getPackageInfo() { 
    fs.readdir("./node_modules", function(err, module) { 
    if (err) { 
     console.log(err); 
     return; 
    } 
    console.log(module) 
    module.forEach(function(dir) { 
     if (dir.indexOf(".") !== 0) { 
     var packageFile = "./node_modules/" + dir + "/package.json"; 
     if (fs.existsSync(packageFile)) { 
      fs.readFile(packageFile, function(err, data) { 
      if (err) { 
       console.log(err); 
      } else { 
       var json = JSON.parse(data); 
       console.log('"' + json.name + '": "' + json.version + '",'); 
      } 
      }); 
     } 
     } 
    }); 

    }); 
} 

getPackageInfo(); 

Выходной

"setprototypeof": "1.0.1", 
"raw-body": "2.1.7", 
"source-map": "0.4.4", 
"statuses": "1.3.0", 
"transformers": "2.1.0", 
"type-is": "1.6.13", 
"methods": "1.1.2", 
"uglify-js": "2.7.3", 
"uglify-to-browserify": "1.0.2", 
"utils-merge": "1.0.0", 
"unpipe": "1.0.0", 
"vary": "1.0.1", 
"void-elements": "2.0.1", 
"with": "4.0.3", 
"window-size": "0.1.0", 
"wordwrap": "0.0.3", 
"yargs": "3.10.0", 
"mime-db": "1.24.0", 
................... 
.................. 
.................. 
................. 

Вы можете также использовать

npm list --depth=0

команду, чтобы получить список пакетов и версии по child_process spawn

+0

Это решение хорошо как обходной путь, так как нет прямого метода. Но это может быть проблематично, поскольку теперь npm (более новые версии> = v3) создает плоское дерево, и в результате этот код будет генерировать большее дерево зависимостей, чем фактическое. – Pankaj

+0

u также может использовать команду 'npm list --depth = 0', чтобы получить список и версию пакетов, используя * shelljs * или * child_process spawn * вместо перемещения папки и файлов –

+0

Согласитесь, нам все же нужно кое-что сделать, чтобы получить его сделанный. Но ваш вопрос правильный. Я обновляю свой ответ. – abdulbarik

 Смежные вопросы

  • Нет связанных вопросов^_^