npm常用技巧
npm中内置了大量的实用技巧,如何高效的使用它们是一件充满挑战的事情。学会下面11个技巧,将会让你在任何项目中使用npm都会事半功倍。
1、如何打开package的主页
- npm home $package
运行home
命令可以打开此package的主页,例如:npm home lodash
,会打开lodash
的主页。不管你机器中是否全局安装了此package,甚至是不存在于你当前项目中都可以打开。
2、如何打开package的Github仓库地址
- npm repo $package
和home
命令类似,运行repo
命令可以打开此package的Github仓库地址,并且它也不要求你必须安装了此package。例如:npm repo express
就打开了express
的Github仓库地址。
3、检查package.json中的那些已经过时的依赖
- npm outdated
运行此命令,它会去检查npm上的注册信息,看你当前项目中有哪些依赖已经过时了,并以列表的形式展示出来。

4、揪出package.json中没有被用到的packages
- npm prune
运行此命令,npm会拿你的package.json
和node_modules
目录进行比对,然后把那些在package.json
中没有引用到的package列出来。
还有那些你没有手动添加到package.json
或者是执行npm install $package
时没有加--save
参数的,都会被删掉。
5、锁定你的依赖版本
- npm shrinkwrap
使用shrinkwrap
命令会在你当前项目中生成一个npm-shrinkwrap.json
文件。它会将你当前package.json
中引用的依赖版本锁定,当下次执行npm install
时,它默认安装的其实是shrinkwrap.json
中锁定的依赖版本号。
注意:如果你想让package.json
、shrinkwrap.json
和node_modules
中的依赖版本号保持一致的话,请慎用此功能。
6、使用npm v3 以及 Node.js v4 LTS
- npm install -g npm@3
首先你要知道,nodejs v4
自带的npm默认版本是v2。执行此命令会将你的npm从v2升级到v3,并且安装的是最新的稳定版本,这样你就可以在nodejs v4
的环境中使用npm v3
了。
7、如何在npm install -g时,不用再加sudo
- npm config set prefix $dir
运行此命令之后,$dir
目录就变成了你全局安装依赖时的默认目录,也就是bin
目录,以后也就不再需要输入sudo
命令了。
需要注意的是,你可能需要使用chown -R $USER $dir
命令改变一下此目录的操作权限,并把$dir/bin
加入到PATH
环境变量中。
8、改变项目的默认保存前缀
- npm config set save-prefix="~"
波浪号~
:表示当信赖的副版本号有更新时,允许使用npm update
进行安装。
脱字符^
:表示当依赖的主版本号有更新时,允许使用npm update
进行安装。
9、如何在生产环境中剥离所有的devDependencies
当你的项目准备好要切换到生产环境时,安装依赖包时一定要带上--production
参数,使用此参数意味着将只会安装你的dependencies
依赖,而忽略你的devDependencies
依赖,这样可以确保你开发阶段的工具包不会进入到生产环境中。
此外,你也可以设置NODE_ENV
环境变量的值为production
,这样就可以完全确保项目的devDependencies
绝对不会被安装了。
10、请谨慎使用. npmignore
如果你的项目中没有使用.npmignore
文件,那么它默认匹配的是.gitignore
中的规则以及一些额外的默认配置。
可是如果你在项目中添加了.npmignore
文件,.gitignore
中的规则就会被忽略,而且这时候你还需要维护两份儿规则文件。
11 、给npm init命令设置自动执行的默认值
我们通常在一个项目中使用npm init
来初始化package.json
文件。如果你想把经常用到的一些值搞成默认配置,可以使用config set
命令。
- npm config set init.author.name $name
- npm config set init.author.email $email
相应的,如果你想完整的自定义一份儿init
脚本,可以这样用:
npm config set init-module ~/.npm-init.js
下面提供一份儿示例供大家参考:
- var cp = require('child_process');
- var priv;
- var USER = process.env.GITHUB_USERNAME || 'YOUR_GITHUB_USERNAME';
- module.exports = {
- name: prompt('name', basename || package.name),
- version: '0.0.1',
- private: prompt('private', 'true', function(val) {
- return priv = (typeof val === 'boolean') ? val : !!val.match('true')
- }),
- create: prompt('create github repo', 'yes', function(val) {
- val = val.indexOf('y') !== -1 ? true : false;
- if (val) {
- console.log('enter github password:');
- cp.execSync("curl -u '" + USER + "' https://api.github.com/user/repos -d " + "'{\"name\": \"" + basename + "\", \"private\": " + ((priv) ? 'true' : 'false') + "}' ");
- cp.execSync('git remote add origin ' + 'https://github.com/' + USER + '/' + basename + '.git');
- }
- return undefined;
- }),
- main: prompt('entry point', 'index.js'),
- repository: {
- type: 'git',
- url: 'git://github.com/' + USER + '/' + basename + '.git'
- },
- bugs: {
- url: 'https://github.com/' + USER '/' + basename + '/issues'
- },
- homepage: "https://github.com/" + USER + "/" + basename,
- keywords: prompt(function(s) {
- return s.split(/\s+/)
- }),
- license: 'MIT',
- cleanup: function(cb) {
- cb(null, undefined)
- }
- }
12、未完待续……
源文章链接:https://nodesource.com/blog/eleven-npm-tricks-that-will-knock-your-wombat-socks-off/
npm常用技巧的更多相关文章
- 提升你的开发效率,10 个 NPM 使用技巧
对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...
- npm常用命令
npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...
- 【shell 大系】Linux Shell常用技巧
在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...
- oracle存储过程常用技巧
我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...
- Vim 常用技巧:
Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...
- JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!
前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!2016-09-29 17 ...
- Android ListView 常用技巧
Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...
- JavaScript常用技巧总结(持续添加中...)
在我学习过程中收集的一些常用技巧: typeof x !== undifined 判断x是否已定义: x === Object(x) 判断x是否为对象: Object.keys(x).length ...
- Eclipse调试常用技巧(转)
Eclipse调试常用技巧 转自http://daimojingdeyu.iteye.com/blog/633824 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就 ...
随机推荐
- 安装了多个php版本,如何编译扩展
cd /data/php-5.5.35/ext/mysqli 找到安装包目录下面的ext目录 ./configure --with-php-config=/usr/local/php5/bin/ph ...
- ROS Learning-007 beginner_Tutorials ROS节点
ROS Indigo beginner_Tutorials-06 ROS节点 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LT ...
- SDUT 3341 数据结构实验之二叉树二:遍历二叉树
数据结构实验之二叉树二:遍历二叉树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 已知二叉 ...
- mysql--表数据的操作
插入数据 --测试插入数据 INSERT 表名 VALUES|VALUE(值...)--当没有指定插入顺序的时候按照表的原来的顺序进行插入 INSERT 表名(需要赋值的字段名称) VALUES|VA ...
- python 矩阵(mat)操作
1.矩阵的创建 由一维或二维数据创建矩阵 a1=array([1,2,3]); a1=mat(a1); data1=mat(zeros((3,3))); #创建一个3*3的零矩阵,矩阵这里zeros函 ...
- CF708B Recover the String 构造
For each string s consisting of characters '0' and '1' one can define four integers a00, a01, a10 an ...
- Halum UVA - 11478 差分约束
输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 复制 2 1 1 2 10 2 1 1 2 -10 3 3 1 2 4 2 3 2 3 1 5 4 5 2 3 4 4 2 5 3 ...
- Eclipse导入GitHub项目两处报错处理
1.项目出现Could not calculate build plan:pligin 错误解决办法: 删除本地.m2仓库中 org.apache.maven.plugins:maven-resour ...
- POJ1052 Plato's Blocks
题目来源:http://poj.org/problem?id=1052 题目大意: 把1*1*1的小立方体通过粘接相邻面组成大的立方体的形状.如下图所示: 一层一层地堆叠,立方体从三个方向的投影会分别 ...
- P4173 残缺的字符串(FFT)
[Luogu4173] 题解 \(1.\)定义匹配函数 \(2.\)定义完全匹配函数 \(3.\)快速计算每一位的完全匹配函数值 #include<cstdio> #include< ...