我们平时使用npm install只是用来安装npm上的包,其实它比我们想象的更强大,不仅仅是安装npmjs上的包,还能够从git、gitlab直接安装,我们先看下install命令的参数列表:
// 从npm源安装 npm install npm install [/] npm install [/]@ npm install [/]@ npm install [/]@ // 从git源、tar包、本地目录安装 npm install :/ npm install npm install npm install
1. npm install
默认情况下,执行命令后会安装package.json中罗列的所有模块。
如果添加–production标记,或者环境变量NODE_ENV被设置为production,npm就不会安装devDependencies中的模块。
1.1 npm install
通过symlink的形式,把包目录连接到项目中。
1.2 npm install
从tar包装有两种方式:
npm install ./package.tgz
npm install https://github.com/indexzero/forever/tarball/v0.5.6
1.3 npm install
另一个比较常见的方式是从git地址安装npm包,不过使用的时候需要注意仓库是否太大,以及源地址是否在外国,这些都会影响安装速度。
协议地址的格式如下:
://[[:]@][:][:][/][# | #semver:]
可以是 git, git+ssh, git+http, git+https, 或者 git+file.
如果配置了#或#semver:npm命令,npm会安装匹配到的特定提交,否则会使用master分支。
在使用git安装模块时,会涉及到访问权限的问题,我们可以使用以下的环境变量:
GIT_ASKPASS GIT_EXEC_PATH GIT_PROXY_COMMAND GIT_SSH GIT_SSH_COMMAND GIT_SSL_CAINFO GIT_SSL_NO_VERIFY
环境变量的具体介绍可以看此:Git 内部原理 – 环境变量
另外还有一个笨办法是使用ssh方式安装,本地电脑配置ssh keynpm命令,通过配置之后可以直接验证权限。
相关示例如下:
npm install 'git+ssh://git@github.com:ineo6/mini-deploy.git#v1.0.2' npm install 'git+ssh://git@github.com:ineo6/mini-deploy#semver:^1.0' npm install 'git+https://isaacs@github.com/ineo6/mini-deploy' npm install 'git://github.com/ineo6/mini-deploy#v1.0.2' GIT_SSH_COMMAND='ssh -i ~/.ssh/custom_ident' npm install 'git+ssh://git@github.com:ineo6/mini-deploy.git'
1.4 npm install /[#]
如果我们的代码是托管在github上,就可以用更简短的命令来安装:
示例如下:
npm install ineo6/magic-lint npm install github:ineo6/magic-lint
1.5 从github gist安装
命令如下:
npm install gist:[/][#|#semver:]
把的内容安装为包,需要注意的是gist内容需要一个梯子才能访问。
示例如下:
npm install gist/1b91123bccc1bb3509bccdbe15215c83
1.6 从bitbucket安装
安装托管在上的包。
命令如下:
npm install bitbucket:/[#]
示例如下:
npm install bitbucket:mybitbucketuser/myproject
1.7 从gitlab安装
安装托管在上的包。
命令如下:
npm install gitlab:/[#]
示例如下:
npm install gitlab:mygitlabuser/myproject npm install gitlab:myusr/myproj#semver:^5.0
2. 附加参数
在使用npm install的时候,我们可以混合使用各类参数:
–tag 对应的是dist-tag(实际执行中发现无效)
–dry-run相当于模拟运行,只会输出日志,不做实际的安装。
–package-lock-only只更新package-lock.json,不安装依赖。
-f or –force强制安装远端的资源
-g or –global全局安装
–global-style安装本地依赖时,会导致目录形式和全局安装结果一样
–ignore-scripts忽略package.json中的scripts脚本
–legacy-bundling npm 的安装方式会恢复到嵌套式安装
–link 把全局包以软连接的形式安装到本地(后续会扩展介绍)
–no-bin-links 避免创建包中的二进制执行文件的symlinks
–no-optional 避免可选依赖被安装
–no-shrinkwrap 忽略shrinkwrap
–no-package-lock 忽略 package-lock.json
–nodedir=/path/to/node/source 指定node目录
–only={prod[uction]|dev[elopment]} 等同于NODE_ENV,只安装非devDependencies依赖或者devDependencies依赖
–no-audit 禁用诊断报告
在使用上面参数的时候我们还可以附加两个参数:
4. 预告
下一篇的名称 发布自己的npm包,重点讲解发布流程以及需要注意的点,同时也有不少干货等着大家发现。
系列汇总
限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688