简单aspx网站开发,个人 可以备案做分类信息网站吗,宁波网页设计制作公司,html自动播放视频文章目录 一、简介二、npm安装三、npm 的使用3.1 npm初始化项目3.2 安装包3.3 安装不同版本包3.4 避免系统权限3.5 更新包3.6 卸载包3.7 执行脚本3.8 pre- 和 post- 脚本3.9 npm link3.10 发布和卸载发布的包3.11 使用npm版本控制3.22 npm资源 四、总结 一、简介
npm#xff… 文章目录 一、简介二、npm安装三、npm 的使用3.1 npm初始化项目3.2 安装包3.3 安装不同版本包3.4 避免系统权限3.5 更新包3.6 卸载包3.7 执行脚本3.8 pre- 和 post- 脚本3.9 npm link3.10 发布和卸载发布的包3.11 使用npm版本控制3.22 npm资源 四、总结 一、简介
npm全名 node package manger。 npm 是Node的开放式模块登记和管理系统是Node.js包的标准发布平台用于Node.js包的发布、传播、依赖控制网址https://www.npmjs.com/ npm 提供了命令行工具可以方便地下载、安装、升级、删除包也可以让你作为开发者发布并维护包。 在本文中我们将深入探讨npm的各个方面从安装到高级用法帮助读者从入门到精通npm的使用。
二、npm安装
npm 在按照 Node.js 时会连带被安装。但有可能不是最新版本需要 npm install npmlatest -g 升级到最新版本。 命令
# 查看 npm 命令列表
$ npm help
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 的版本
$ npm -v
# 查看 npm 的配置
$ npm config list -l三、npm 的使用
3.1 npm初始化项目
npm init 初始化 package.json 文件,用来初始化生成package.json文件。在这个过程中会向用户提问一系列问题如果你觉得不用修改默认配置一路回车就可以了。 如果使用了-f代表force、-y代表yes则跳过提问阶段直接生成一个新的package.json文件。 npm set 设置环境变量:
$ npm set init-author-name Your name
$ npm set init-author-email Your email
$ npm set init-author-url http://****.com
$ npm set init-license MIT上面命令等于为npm init设置了默认值以后执行npm init的时候package.json的作者姓名、邮件、主页、许可证字段就会自动写入预设的值。这些信息会存放在用户主目录的~/.npmrc文件使得用户不用每个项目都输入。如果某个项目有不同的设置可以针对该项目运行npm config。
$ npm set save-exact true上面命令设置加入模块时package.json将记录模块的确切版本而不是一个可选的版本范围。 npm config
$ npm config set prefix $dir上面的命令将指定的$dir目录设为模块的全局安装目录。如果当前有这个目录的写权限那么运行npm install的时候就不再需要sudo命令授权了。
$ npm config set save-prefix ~上面的命令使得npm install --save和npm install --save-dev安装新模块时允许的版本范围从克拉符号^改成波浪号~即从允许小版本升级变成只允许补丁包的升级。
$ npm config set init.author.name $name
$ npm config set init.author.email $email上面命令指定使用npm init时生成的package.json文件的字段默认值。 npm info npm info命令可以查看每个模块的具体信息
$ npm info underscore
$ npm info underscore description
$ npm info underscore homepage
$ npm info underscore versionnpm search: npm search命令用于搜索npm仓库它后面可以跟字符串也可以跟正则表达式
$ npm search 搜索词npm list npm list命令以树型结构列出当前项目安装的所有模块以及它们依赖的模块。
npm list
npm list -global
npm list vue加上global参数会列出全局安装的模块。
3.2 安装包
Node模块采用npm install命令安装。
每个模块可以“全局安装”也可以“本地安装”。“全局安装”指的是将一个模块安装到系统目录中各个项目都可以调用。一般来说全局安装只适用于工具模块比如eslint和gulp。“本地安装”指的是将一个模块下载到当前项目的node_modules子目录然后只有在项目目录之中才能调用这个模块
本地安装
$ npm install package name全局安装
$ sudo npm install -global package name
$ sudo npm install -g package name也支持直接输入Github代码库地址
$ npm install git://github.com/package/path.git
$ npm install git://github.com/package/path.git#0.1.0强制重新安装
$ npm install packageName --force如果你希望所有模块都要强制重新安装那就删除node_modules目录重新执行npm install
$ rm -rf node_modules
$ npm install3.3 安装不同版本包
install 命令总是安装模块的最新版本如果要安装模块的特定版本可以在模块名后面加上和版本号。
$ npm install saxlatest
$ npm install sax0.1.1
$ npm install sax0.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-namebeta (latest beta)
# 安装指定的beta版
$ npm install module-name1.3.1-beta.3# npm install默认会安装dependencies字段和devDependencies字段中的所有模块如果使用--production参数可以只安装dependencies字段的模块
$ npm install --production
# 或者
$ NODE_ENVproduction npm install3.4 避免系统权限
默认情况下Npm全局模块都安装在系统目录比如/usr/local/lib/普通用户没有写入权限需要用到sudo命令。这不是很方便我们可以在没有root权限的情况下安装全局模块。 首先在主目录下新建配置文件.npmrc然后在该文件中将prefix变量定义到主目录下面。
prefix /home/yourUsername/npm然后在主目录下新建npm子目录
$ mkdir ~/npm此后全局安装的模块都会安装在这个子目录中npm也会到~/npm/bin目录去寻找命令。 最后将这个路径在.bash_profile文件或.bashrc文件中加入PATH变量。
export PATH~/npm/bin:$PATH3.5 更新包
npm update命令可以更新本地安装的模块
# 升级当前项目的指定模块
$ npm update [package name]
# 升级全局安装的模块
$ npm update -global [package name]它会先到远程仓库查询最新版本然后查询本地版本。如果本地版本不存在或者远程版本较新就会安装。 使用-S或–save参数可以在安装的时候更新package.json里面模块的版本号。 注意从npm v2.6.1开始npm update只更新顶层模块而不更新依赖的依赖以前版本是递归更新的。如果想取到老版本的效果要使用下面的命令。
$ npm --depth 9999 update3.6 卸载包
npm uninstall命令卸载已安装的模块
$ npm uninstall [package name]
# 卸载全局模块
$ npm uninstall [package name] -global3.7 执行脚本
npm run npm 不仅可以用于模块管理还可以用于执行脚本。package.json 文件有一个 scripts 字段可以用于指定脚本命令供npm直接调用。 npm run 命令会自动在环境变量 $PATH 添加 node_modules/.bin 目录所以 scripts 字段里面调用命令时不用加上路径这就避免了全局安装 NPM 模块。 npm run 如果不加任何参数直接运行会列出 package.json 里面所有可以执行的脚本命令。 npm内置了两个命令简写npm test 等同于执行 npm run testnpm start 等同于执行 npm run start。
$ npm i eslint --save-dev3.8 pre- 和 post- 脚本
npm run 为每条命令提供了 pre- 和 post- 两个钩子hook。以 npm run lint 为例执行这条命令之前npm会先查看有没有定义 prelint 和 postlint 两个钩子如果有的话就会先执行 npm run prelint然后执行 npm run lint最后执行npm run postlint。
3.9 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 myModule3.10 发布和卸载发布的包
npm publish用于将当前模块发布到http://npmjs.com。执行之前需要向http://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 --scopeyourscope
# 如果你的模块是用ES6写的那么发布的时候最好转成ES5。首先需要安装Babel。
$ npm install --save-dev babel-cli6 babel-preset-es20156然后在package.json里面写入build脚本。
scripts: {build: babel source --presets babel-preset-es2015 --out-dir distribution,prepublish: npm run build
}运行上面的脚本会将 source 目录里面的ES6源码文件转为 distribution 目录里面的 ES5 源码文件。然后在项目根目录下面创建两个文件 .npmignore 和 .gitignore分别写入以下内容。
// .npmignore
source
// .gitignore
node_modules
distribution
npm deprecate如果想废弃某个版本的模块可以使用 npm deprecate 命令。
$ npm deprecate my-thing 0.2.3 critical bug fixed in v0.2.33.11 使用npm版本控制
npm内置了版本控制功能允许你通过简单的命令来更新项目的版本号。这有助于在发布新版本时跟踪和管理项目的版本。 你可以使用以下命令来更新版本号 npm version patch将版本号中的补丁级别加1例如从1.0.0到1.0.1。 npm version minor将版本号中的次要级别加1并将补丁级别重置为0例如从1.0.0到1.1.0。 npm version major将版本号中的主级别加1并将次要级别和补丁级别重置为0例如从1.0.0到2.0.0。 npm会自动更新package.json中的版本号并提交一个新的git commit和tag。
3.22 npm资源
npm官网查找和发布npm包的平台。 npm文档npm的官方文档包含各种命令和功能的详细说明。 npm博客了解npm的最新动态、教程和最佳实践
四、总结
npm是Node.js生态系统中不可或缺的一部分它提供了强大的依赖管理和包发布功能。通过掌握npm的基础用法和技巧你可以更加高效地使用npm来加速项目的开发过程并与其他开发者和工具进行无缝集成。