2016-08-15 30 views
1

我想知道是否有一种方法可以提取和打印所有依赖关系的版本信息? 比如我使用下面的依赖关系:如何提取依赖关系的版本信息

"dependencies": { 
    "angular2": "2.0.0-beta.15", 
    "bu-controls": "^0.0.34", 
    "es6-shim": "^0.35.0", 
    "jquery": "^2.2.0", 
    "moment": "2.14.1", 
    "ms-signalr-client": "2.2.5", 
    "ng2-translate": "^1.11.1", 
    "numeral": "1.5.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "systemjs": "~0.19.18", 
    "underscore": "1.8.3", 
    "zone.js": "0.6.10" 
    } 

所以,我的任务就是显示在浏览器为客户端的版本信息。 非常感谢您的帮助。

+0

是否需要点播?在用户点击一个按钮,然后依赖显示? – Scrambo

+0

我将有一个页面,那里的所有依赖关系都会显示在一个表格中。 – user3506588

+0

只是部署json的依赖关系,并使用它 –

回答

2

由于您使用的是npm,因此您可以将命令npm list --depth=0的输出重定向到文件,然后解析文件并在浏览器中显示网页上的内容。

下面是npm list --depth=0在我的一个项目中的样子。

+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- @angular/[email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] invalid 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
+-- [email protected] 
`-- [email protected] 
+0

谢谢你的回复,这样我总是会依赖更新列表文件(在npm list --depth = 0之后创建的文件)?我的意思是,如果某些lib的版本已经更改,要显示它,列表文件必须更新。 – user3506588

+0

是的,这是正确的,任何时候你更新任何依赖关系的文件将不得不更新以匹配新版本。这可以通过每次用户访问此依赖页面时创建一个新文件来缓解,但我不确定这是否是您希望或愿意执行的操作。 – Scrambo

+0

好的,谢谢,我将添加一个脚本,每次运行'npm install'时触发一次。这样我希望每次运行'npm i'时都要更新列表文件。 – user3506588

相关问题