首页 > 编程知识 正文

nodejs菜鸟教程,typescript教程阮一峰

时间:2023-05-05 10:47:14 阅读:128670 作者:3098

npm超详细教程npm,全名node package manger。

npm是Node的开放模块注册和管理系统,是Node.js包的标准分发平台,用于Node.js包的分发、分发和依赖控制。 网站: https://www.npmjs.com/npm提供命令行工具,可以轻松下载、安装、升级和删除软件包,也可以作为开发人员使用,但不是最新版本基本命令:

#查看NPM命令列表$ npm help#查看每个命令的简单用法$查看$NPM-l#NPM的版本$查看$NPM-v#NPM的配置$ npm config list -l npm的使用npm init的初始化包如果你觉得不用更改默认配置,你可以马上回到车里。

如果使用-f(force,-y ) yes ),请跳过问题阶段,直接生成新的package.json文件。

npm set环境变量$ npmsetinit-author-name ' your name ' $ npmsetinit-author-email ' your email ' $ npmsetinit-author-URL ' 稍后运行npm init时,默认值将自动写入package.json的作者姓名、邮件、主页和许可证字段。 这些信息存储在用户主目录的~/.npmrc文件中,因此用户不需要输入所有内容。 如果项目有不同的设置,则可以对该项目运行npm config。

$ npm set save-exact true将上述命令设置添加到模块中时,package.json将记录模块的确切版本,而不是可选版本范围。

NPM config $ npmconfigsetprefix $dir上的命令将指定的$ dir目录设置为模块的全局安装目录。 如果您当前具有此目录的写入权限,则运行npm install时不需要sudo命令许可证。

$ npm config set save-prefix ~(根据上述命令,npm install --save和npm install --save-dev在安装新模块时会占用允许的版本范围也就是说,将从次要版本更改为只允许修补程序

$ npmconfigsetinit.author.name $ name $ npmconfigsetinit.author.email $ email上述命令是在使用npm init时生成的package.json

npm info npm info命令显示每个模块的特定信息

$ npminfounderscore $ npminfounderscoredescription $ npminfounderscorehomepage $ npminfounderscoreversionnnpmsearchnpmsearch命令

$ npm search搜索词npm list npm list命令在树结构中列出当前项目中安装的所有模块及其依赖的模块。

npmlistnpmlist -将全局参数添加到globalnpmlistvue中时,将列出全局安装的模块。

npm install Node模块是使用npm install命令安装的。

每个模块都可以安装在“全局”或“本地”上。 “全局安装”意味着可以将模块安装在系统目录中,然后调用每个项目。 通常,全局安装仅适用于eslint和gulp等工具模块。 本地安装意味着将模块下载到当前项目的node_modules子目录中,并且仅在该模块位于项目目录中时调用该模块

$ npm install package name#全局安装$ sudonpminstall -全局package name $ sudonpminstall-gpackagename # github代码库地址还支持github.com/package/path.git $ npminstallgit ://github.com/package/package $ NPM安装软件包

e_modules$ npm install 安装不同版本

install 命令总是安装模块的最新版本,如果要安装模块的特定版本,可以在模块名后面加上@和版本号。

$ npm install sax@latest$ npm install sax@0.1.1$ npm install sax@">=0.1.0 <0.2.0"# 如果使用--save-exact参数,会在package.json文件指定安装模块的确切版本$ npm install readable-stream --save --save-exact$ npm install sax --save$ npm install node-tap --save-dev# 或者$ npm install sax -S$ npm install node-tap -D# 如果要安装beta版本的模块,需要使用下面的命令# 安装最新的beta版$ npm install <module-name>@beta (latest beta)# 安装指定的beta版$ npm install <module-name>@1.3.1-beta.3# npm install默认会安装dependencies字段和devDependencies字段中的所有模块,如果使用--production参数,可以只安装dependencies字段的模块$ npm install --production# 或者$ NODE_ENV=production npm install 避免系统权限

默认情况下,Npm全局模块都安装在系统目录(比如/usr/local/lib/),普通用户没有写入权限,需要用到sudo命令。这不是很方便,我们可以在没有root权限的情况下,安装全局模块。

首先,在主目录下新建配置文件.npmrc,然后在该文件中将prefix变量定义到主目录下面。

prefix = /home/yourUsername/npm

然后在主目录下新建npm子目录

$ mkdir ~/npm

此后,全局安装的模块都会安装在这个子目录中,npm也会到~/npm/rqdwd目录去寻找命令。

最后,将这个路径在.bash_profile文件(或.bashrc文件)中加入PATH变量。

export PATH=~/npm/rqdwd:$PATH npm update

npm update命令可以更新本地安装的模块

# 升级当前项目的指定模块$ npm update [package name]# 升级全局安装的模块$ npm update -global [package name]

它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

使用-S或--save参数,可以在安装的时候更新package.json里面模块的版本号。

注意,从npm v2.6.1开始,npm update只更新顶层模块,而不更新依赖的依赖,以前版本是递归更新的。如果想取到老版本的效果,要使用下面的命令。

$ npm --depth 9999 update npm uninstall

npm uninstall命令,卸载已安装的模块

$ npm uninstall [package name]# 卸载全局模块$ npm uninstall [package name] -global npm run

npm 不仅可以用于模块管理,还可以用于执行脚本。package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供npm直接调用。

npm run 命令会自动在环境变量 $PATH 添加 node_modules/.rqdwd 目录,所以 scripts 字段里面调用命令时不用加上路径,这就避免了全局安装 NPM 模块。

npm run 如果不加任何参数,直接运行,会列出 package.json 里面所有可以执行的脚本命令。

npm内置了两个命令简写,npm test 等同于执行 npm run test,npm start 等同于执行 npm run start。

$ npm i eslint --save-dev pre- 和 post- 脚本

npm run 为每条命令提供了 pre- 和 post- 两个钩子(hook)。以 npm run lint 为例,执行这条命令之前,npm会先查看有没有定义 prelint 和 postlint 两个钩子,如果有的话,就会先执行 npm run prelint,然后执行 npm run lint,最后执行npm run postlint。

全局模块(在命令行的任何地方可以使用) 局部模块 为什么全局模块可以直接在任何地方使用 全局的模块 必须使用package.json 中配置rqdwd参数#! /usr/rqdwd/env node npm link

就是将当前的目录临时的放到全局下。

开发 NPM 模块的时候,有时我们会希望,边开发边试用,比如本地调试的时候,require(‘myModule’) 会自动加载本机开发中的模块。Node规定,使用一个模块时,需要将其安装到全局的或项目的 node_modules 目录之中。对于开发中的模块,解决方法就是在全局的 node_modules 目录之中,生成一个符号链接,指向模块的本地目录。

npm link 就能起到这个作用,会自动建立这个符号链接。

请设想这样一个场景,你开发了一个模块 myModule,目录为 src/myModule,你自己的项目 myProject 要用到这个模块,项目目录为 src/myProject。首先,在模块目录(src/myModule)下运行 npm link 命令。

src/myModule$ npm link

上面的命令会在NPM的全局模块目录内,生成一个符号链接文件,该文件的名字就是 package.json 文件中指定的模块名。

/path/to/global/node_modules/myModule -> src/myModule

这个时候,已经可以全局调用 myModule 模块了。但是,如果我们要让这个模块安装在项目内,还要进行下面的步骤。

切换到项目目录,再次运行 npm link 命令,并指定模块名。

src/myProject$ npm link myModule

上面命令等同于生成了本地模块的符号链接。

src/myProject/node_modules/myModule -> /path/to/global/node_modules/myModule

然后,就可以在你的项目中,加载该模块了。

var myModule = require('myModule');

这样一来,myModule 的任何变化,都可以直接反映在 myProject 项目之中。但是,这样也出现了风险,任何在myProject目录中对myModule的修改,都会反映到模块的源码中。

如果你的项目不再需要该模块,可以在项目目录内使用 npm unlink 命令,删除符号链接。

src/myProject$ npm unlink myModule npm rqdwd # 项目根目录下执行$ npm rqdwd./node_modules/.rqdwd npm adduser $ npm adduserUsername: YOUR_USER_NAMEPassword: YOUR_PASSWORDEmail: YOUR_EMAIL@domain.com npm publish

npm publish用于将当前模块发布到npmjs.com。执行之前,需要向npmjs.com申请用户名。

# 需要向npmjs.com申请用户名$ npm adduser# 登录$ npm login# 发布$ npm publish# 如果当前模块是一个beta版,比如1.3.1-beta.3,那么发布的时候需要使用tag参数,将其发布到指定标签,默认的发布标签是latest$ npm publish --tag beta# 如果发布私有模块,模块初始化的时候,需要加上scope参数。只有npm的付费用户才能发布私有模块。$ npm init --scope=<yourscope># 如果你的模块是用ES6写的,那么发布的时候,最好转成ES5。首先,需要安装Babel。$ npm install --save-dev babel-cli@6 babel-preset-es2015@6

然后,在package.json里面写入build脚本。

"scripts": { "build": "babel source --presets babel-preset-es2015 --out-dir distribution", "prepublish": "npm run build"}

运行上面的脚本,会将 source 目录里面的ES6源码文件,转为 distribution 目录里面的 ES5 源码文件。然后,在项目根目录下面创建两个文件 .npmignore 和 .gitignore,分别写入以下内容。

// .npmignoresource// .gitignorenode_modulesdistribution npm deprecate

如果想废弃某个版本的模块,可以使用 npm deprecate 命令。

$ npm deprecate my-thing@"< 0.2.3" "critical bug fixed in v0.2.3" github / npm npm版本号管理的问题 semver规范 规定了版本号 由3位组成 MAJOR MINOR PATCH MAJOR 可能不在兼容老版本MINOR 新增了一些兼容旧版本的api vue.observablePATCH 修复bug

都是git的tag 对应着npm的版本

npm version major minor patch

会自动和git进行关联

版本号含义 2.2.0 必须是2.2.0^2.2.0 限定大版本,后面更新只要不超过2尽可以~2.2.0 限定前两个版本,后面的版本只要比0大就可以

=2.0 大于这个版本

<=2.01.0.0 - 2.0.0

预发版本

alpha 预览版 内部测试版beta 测试版 公开测试版rc 最终测试版本 scripts 可以配置脚本的命令 快捷键(可以把很长的命令放到scripts中)执行命令 会将当前的node_modules目录下的.rqdwd文件夹放到全局中(所以可以直接使用)npm run start 可以简写成 npm start npx npx和script一致可以帮我们直接运行 .rqdwd目录下的内容如果.rqdwd目录下存在 会执行对应脚本,如果不存在会下载运行

npx 只是一个临时的使用方案。 npm5.2 之后产生的

源的切换 (npm nrm nvm) npm install nrm -gnrm ls / nrm use 包的发布 如何发布一个包 先注册npm账号一定要在官方源上发npm addUser 添加用户npm publish 发布包

参考链接:npm模块管理器(ssdqc)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。