广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js的npm包管理器基础使用教程
  • 245
分享到

Node.js的npm包管理器基础使用教程

管理器基础教程 2022-06-04 17:06:08 245人浏览 安东尼
摘要

配置 npm set npm set init-author-name 'Your name' npm set init-author-email 'Your email' npm set init

配置


npm set

npm set init-author-name 'Your name'
npm set init-author-email 'Your email'
npm set init-author-url 'Http://yourdomain.com'
npm set init-license 'MIT'

上面命令等于为npm init设置了默认值,以后执行npm init的时候,package.JSON的作者姓名、邮件、主页、许可证字段就会自动写入预设的值。这些信息会存放在用户主目录的~/.npmrc文件,使得用户不用每个项目都输入。
如果某个项目有不同的设置,可以针对该项目运行npm config。
1.


npm set save-exact true

上面命令设置加入模块时,package.json将记录模块的确切版本,而不是一个可选的版本范围。

2.


npm config get prefix

3.


npm config set prefix /usr/local

npm使用
安装:


npm install grunt-cli

安装之前,npm install会先检查,node_modules目录之中是否已经存在指定模块。如果存在,就不再重新安装了,即使远程仓库已经有了一个新版本,也是如此。
如果你希望,一个模块不管是否安装过,npm 都要强制重新安装,可以使用-f或--force参数。

本地安装: package会被下载到当前所在目录,也只能在当前目录下使用。安装结束后,当前目录下回多出一个node_modules目录,grunt-cli就安装在里面。


npm install -g grunt-cli

全局安装:package会被下载到到特定的系统目录下,安装的package能够在所有目录下使用。现在变成了/usr/local/lib/node_modules/grunt-cli,/usr/local/lib/node_modules/也就是之前所说的全局安装目录啦。
1.安装当前目录package.json文件中配置的devDependencies模块


npm install

2.安装本地的模块文件


npm install ./package.tgz

3.安装指定URL的模块


npm install https://GitHub.com/indexzero/forever/tarball/v0.5.6

4.安装本地文件系统中指定的目录包含的模块


npm install <folder>

5.安装并更新package.json中的版本配置


npm install <name> [?save|?save-dev|?save-optional]

(1)添加?save 参数安装的模块的名字及其版本信息会出现在package.json的dependencies选项中
(2)添加?save-dev 参数安装的模块的名字及其版本信息会出现在package.json的devDependencies选项中
(3)添加?save-optional 参数安装的模块的名字及其版本信息会出现在package.json的optionalDependencies选项中
6.安装模块的指定版本


npm install <name>@<version>
Example:
npm install underscore@1.5.2

7.安装模块指定版本号范围内的某一个版本


npm install <name>@<version range>

Example:


npm install async@”>=0.2.0 <0.2.9″

?force强制拉取远程资源,即使本地已经安装这个模块
Example:


npm install underscore ?force

8.-g或?global全局安装模块,如果没有这个参数,会安装在当前目录的node_modules子目录下
Example:


npm install -g express

如果你希望,所有模块都要强制重新安装,那就删除node_modules目录,重新执行npm install。


$ rm -rf node_modules
$ npm install

更新


npm update [-g] [<name> [<name> … ]

更新指定name列表中的模块。-g参数更新全局安装的模块。
如果没有指定name,且不是在某个模块内,会更新当前目录依赖的所有包都会被更新(包括全局和模块内);如果当前目录在某个模块目录内,会更新该模块依赖的模块,所以不指定name直接运行npm update时,最好在某个模块内运行,以免更新到其他不想更新的模块。

卸载


npm uninstall package

查看
查看安装了那些包


npm ls --depth=0

查看特定包具体信息


npm ls grunt-cli
npm info grunt-cli

搜索


npm search grunt-cli

发布
1.package.json
package.json说明:
npm命令运行时会读取当前目录的 package.json 文件和解释这个文件,这个文件基于 Packages/1.1规范。在这个文件里你可以定义你的应用名称( name )、应用描述( description )、关键字( keyWords )、版本号( version )、应用的配置项( config )、主页( homepage )、作者( author )、资源仓库地址( repository )、bug的提交地址( bugs ),授权方式( licenses )、目录( directories )、应用入口文件( main )、命令行文件( bin )、应用依赖模块( dependencies )、开发环境依赖模块( devDependencies )、运行引擎( engines )和脚本( scripts )等。

对于开发者而言,开发和发布模块都依赖于他对这个文件 package.json 所包含的意义的正确理解。我们下面用一个本文共用的例子来说明:


{
  "name": "test",
  "version": "0.1.0",
  "description": "A testing package",
  "author": "A messed author <messed@example.com>",
  "dependencies": {
    "express": "1.x.x",
    "ejs": "0.4.2",
    "Redis": ">= 0.6.7"
  },
  "devDependencies": {
    "vows": "0.5.x"
  },
  "main": "index",
  "bin": {
    "test": "./bin/test.js"
  },
  "scripts": {
    "start": "node server.js",
    "test": "vows test/*.js",
    "preinstall": "./configure",
    "install": "make && make install"
  },
  "engines": {
    "node": "0.4.x"
  }
}

这个例子里我们定义了应用的入口文件( main )为 index ,当其他应用引用了我们的模块 require('test') 时,这个 main 的值 index.js 文件被调用。脚本( scripts )使用hash 表定义了几个不同的命令。script.start 里的定义的 node server.js 会在 npm start 时被调用,同样的 npm test 调用时对应的 scripts.test 里定义的命令被调用。在有些 native 模块需要编译的话,我们可以定义预编译和编译的命令。

本例中还定义了应用依赖模块( dependencies )和开发环境依赖模块( devDependencies )。应用依赖模块会在安装时安装到当前模块的 node_modules 目录下。开发环境依赖模块主要时在开发环境中用到的依赖模块,用命令 npm 的命令 install 或 link 加上参数 —dev 安装到当前模块的 node_modules 目录下。

name: package的名字(由于他会成为url的一部分,所以 non-url-safe 的字母不会通过,也不允许出现"."、"_"),最好先在[](http://reGIStry.npmjs.org/上搜下你取的名字是否已经存在)
version: package的版本,当package发生变化时,version也应该跟着一起变化,同时,你声明的版本需要通过semver的校验(semver可自行谷歌)
dependencies: package的应用依赖模块,即别人要使用这个package,至少需要安装哪些东东。应用依赖模块会安装到当前模块的node_modules目录下。
devDependencies:package的开发依赖模块,插件发布的时候自动删除不相关代码。用个文件记录一下当前项目中安装或者需要的插件,即别人要在这个package上进行开发,可以一键安装项目所需插件。

2.版本号
大家也注意到 package.json 里的版本号有些是 >= 0.6.7 有些是 1.x.x,这有什么区别?npm 使用于语义化的版本识别来进行版本管理。并不是所有的模块都会提供向后兼容性,有时候某些模块因为某些原因导致不向后兼容。所以我们需要定义一些规则来保证模块能够在某些特定的版本中可用,并且保证能用最新的版本,因为那些版本总是修改了一些 bug 或提升了性能等。我们来看一下版本定义的字段:

例子:0.4.2

+ 大版本(0)
+ 小版本(4)
+ 补丁版本(2)
一个软件发布的时候,默认就是 1.0.0 版。如果以后发布补丁,就增加最后一位数字,比如1.0.1;如果增加新功能,且不影响原有的功能,就增加中间的数字(即小版本号),比如1.1.0;如果引入的变化,破坏了向后兼容性,就增加第一位数字(即大版本号),比如2.0.0。

在上面 package.json 的定义里我们确信模块在所有的 nodejs 0.4及以上和0.5以下版本里都能运行。依赖模块 redis 在所有大于或等于0.6.7的版本上都能运行,依赖模块 ejs 只能确保运行在0.4.2版本里,依赖模块 express 确保能够兼容大于或等于1.0.0并且小于2.0.0。

生成


npm init

用来初始化生成一个新的package.json文件。它会向用户提问一系列问题,如果你觉得不用修改默认配置,一路回车就可以了。
如果使用了-f(代表force)、-y(代表yes),则跳过提问阶段,直接生成一个新的package.json文件。

--结束END--

本文标题: Node.js的npm包管理器基础使用教程

本文链接: https://www.lsjlt.com/news/12994.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js的npm包管理器基础使用教程
    配置 npm set npm set init-author-name 'Your name' npm set init-author-email 'Your email' npm set init...
    99+
    2022-06-04
    管理器 基础 教程
  • Node.js基础入门之模块与npm包管理器使用详解
    目录require函数模块分类第三方模块1. 安装第三方模块2. 引入第三方模块3. 示例测试系统模块require注意事项exports导出对象1. exports示例2. exp...
    99+
    2022-11-13
  • Node.js安装教程和NPM包管理器使用详解
    2009年的JSCOnf大会上,一个叫Ryan Dahl的年轻程序员向人们展示了一个他正在做的项目,一个基于Google V8引擎的JavaScript运行平台,它提供了一套事件循环和低IO的应用程序编程接...
    99+
    2022-06-04
    管理器 详解 教程
  • Node.js包管理器npm的具体使用
    目录目的npm init 与 package.json文件模块安装与管理安装模块查看已安装模块更新模块删除模块npx模块编译版本控制换源使用 nrm 工具换源使用 cnpm 代替 n...
    99+
    2022-11-12
  • Node.js包管理器npm怎么用
    这篇文章主要介绍Node.js包管理器npm怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!目的目前的Node.js安装包中都带有一个重要的工具 包管理器npm 。npm主要有两方面功能:下载管理第三方模块;构建...
    99+
    2023-06-21
  • 详解Node.js包的工程目录与NPM包管理器的使用
    工程目录 了解了以上知识后,现在我们可以来完整地规划一个工程目录了。以编写一个命令行程序为例,一般我们会同时提供命令行模式和 API 模式两种使用方式,并且我们会借助三方包来编写代码。除了代码外,一个完整的...
    99+
    2022-06-04
    管理器 详解 目录
  • 使用npm发布Node.JS程序包教程
    npm是Node.JS的程序包管理器。进行Node.JS开发时,经常使用它安装/卸载程序包。实际上,发布程序包的工作也是由它来完成的。 配置package.json 要打包程序,首先要配好各项设置,这些设置...
    99+
    2022-06-04
    程序包 教程 npm
  • Node.js模块与npm包管理器如何使用
    本篇内容主要讲解“Node.js模块与npm包管理器如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js模块与npm包管理器如何使用”吧!require函数作用:在当前模块中加载...
    99+
    2023-06-29
  • node.js的NPM包管理工具如何使用
    这篇文章主要介绍“node.js的NPM包管理工具如何使用”,在日常操作中,相信很多人在node.js的NPM包管理工具如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-12-05
    node.js npm
  • Node.js中的包管理工具npm怎么使用
    本篇内容介绍了“Node.js中的包管理工具npm怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一...
    99+
    2022-10-19
  • Node.js的包管理器NPM是什么,以及如何使用它?
    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它使得使用JavaScript在服务器端开发变得简单和高效。Node.js自带一个包管理器,叫做NPM(Node Package Manager),它允许开发者...
    99+
    2023-06-21
    并发 ide npm
  • Node.js包管理工具npm和yarn的用法
    这篇文章主要讲解了“Node.js包管理工具npm和yarn的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js包管理工具npm和yarn的用...
    99+
    2022-10-19
  • Node.js中的模块化,npm包管理器详解
    目录模块化的基本概念什么是模块化模块化拆分的好处Node.js中的模块化Node.js中模块的分类加载模块模块作用域向外共享模块作用域中的成员module对象exports对象npm...
    99+
    2022-11-12
  • wireshark网络抓包工具基础使用教程
    目录  简介 WireShark软件安装 Wireshark 开始抓包示例 Wireshark过滤器设置 停止抓包 ​编辑保存数据 界面介绍 基础操作 1. 调整界面大小 2. 设置显示列 1)添加显示列 ​2)隐藏显示列 3)删除显示列 ...
    99+
    2023-08-31
    网络 wireshark 服务器
  • Python 基础教程之包和类的用法
    Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算...
    99+
    2022-06-04
    基础教程 Python
  • 安装使用Mongoose配合Node.js操作MongoDB的基础教程
    安装mongoose 使用express准备一个TestMongoDB项目,命令序列如下: express TestMongoDB cd TestMongoDB npm install 执行完上面的...
    99+
    2022-06-04
    基础教程 操作 Node
  • Node包管理器npm和yarn怎么使用
    这篇文章主要介绍“Node包管理器npm和yarn怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Node包管理器npm和yarn怎么使用”文章能帮助大家解决...
    99+
    2022-10-19
  • IDEA 2022 中的Lombok 使用基础教程
    目录1.Lombok是什么1.1 Lombok 是什么?2、POM 中引入依赖3、IDE 中安装插件4. Lombok 使用4.1 Lombok 使用注意5.代码案例:6. 常用注解...
    99+
    2022-12-24
    IDEA 2022  Lombok 使用 IDEA   Lombok
  • Android第三方HTTP网络支持包OkHttp的基础使用教程
    OkHttp 包的设计和实现的首要目标是高效。这也是选择 OkHttp 的重要理由之一。OkHttp 提供了对最新的 HTTP 协议版本 HTTP/2 和 SPDY 的支持,这...
    99+
    2022-06-06
    HTTP okhttp 教程 Android
  • NPM包管理器的使用技巧,你必须知道!
    随着Node.js的流行,NPM(Node Package Manager)已经成为了前端和后端开发者必不可少的工具之一。NPM包管理器可以让开发者轻松地管理和安装依赖包,同时也提供了很多有用的功能和技巧,让我们来了解一下! 查找包 ...
    99+
    2023-09-03
    分布式 npm numy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作