Node.js 教程

NPM(Node Package Manger)是一种与社区共享node_modules的方法。

package.json

NPM使用一个名为package.json的简单JSON文件来共享模块信息。

要在当前文件夹中创建一个package.json文件,只需运行以下代码。

$npm init

运行后将问你几个问题,如模块的名称和版本。只需按Enter键直到结束。

这将在当前文件夹中创建一个package.json,其名称设置为当前文件夹,版本设置为0.0.0,以及一些其他合理的默认值。

{ 
    "name": "myData", 
    "version": "0.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "author": "", 
    "license": "ISC" 
}

安装NPM包

让我们安装一个模块,例如,underscore(www.npmjs.org/package/underscore)到一个文件夹。

下载最新版本的underscore,你只需运行以下命令。

$ npm install underscore

上面的代码生成以下结果。

这将从npmjs.org下载最新版本的underscore,并将其放入当前文件夹中的node_modules / underscore。

要加载这个模块,现在你所需要做的是进行require('underscore')调用。

以下代码加载underscore库,并将数组的最小元素输出到控制台。

var _ = require("underscore"); 
console.log(_.min([3, 1, 2])); // 1

上面的代码生成以下结果。

保存依赖关系

每当你运行npm install,你有一个可选的命令行标志可用:--save 告诉NPM写关于你安装到package.json中的信息。

执行npm init创建一个包文件。

$ npm init

发出以下命令将信息保存到package.json。

$ npm install underscore --save

上面的代码生成以下结果。

如果使用 ?-save 运行安装,不仅会将underscore下载到node_modules,还将更新package.json中的dependencies以指向underscore的已安装版本。

"dependencies": { 
    "underscore": "^1.6.0" 
}

通过跟踪dependencies,我们知道我们正在使用的特定库的哪个发布版本。

刷新node_modules文件夹

要package.json中刷新node_modules文件夹,我们可以运行以下命令:

$ npm install

这只是查看你的package.json文件,并下载package.json中指定dependencies的一个新副本。

列出所有dependencies

要查看已安装的包,请运行 npm ls 命令。

$ npm ls 
...
+-- [email protected]

删除依赖关系

要删除包,请使用 npm uninstall npm rm 命令,并指定一个或多个包的名称。

npm rm underscore --save 在本地从node_modules中删除underscore文件夹,并修改package.json的dependencies部分。你可以通过添加-g 选项来删除全局包。

以下代码显示如何使用 npm rm 删除命令模块。

npm rm commander

package.json在线依赖关系跟踪

以下代码显示了安装具有大量dependencies的模块

$ npm install request 
npm http GET https://registry.npmjs.org/request 
npm http GET https://registry.npmjs.org/tunnel-agent 
npm http GET https://registry.npmjs.org/json-stringify-safe 
...truncated... 
npm http 304 https://registry.npmjs.org/delayed-stream/0.0.5 
[email protected] node_modules\request 
+-- [email protected] 
...truncated... 
+-- [email protected] 
+-- [email protected] ([email protected][email protected])

NPM不仅安装了request,还带来了一些其他request依赖的包。

新闻动态 联系方式 广告合作 招聘英才 安科实验室 帮助与反馈 About Us

Copyright © 2013 - 2019 Ancii.com All Rights Reserved京ICP备18063983号-5 京公网安备11010802014868号