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.jsonnode_modules目录进行比对,然后把那些在package.json中没有引用到的package列出来。
还有那些你没有手动添加到package.json或者是执行npm install $package时没有加--save参数的,都会被删掉。

5、锁定你的依赖版本

npm shrinkwrap

使用shrinkwrap命令会在你当前项目中生成一个npm-shrinkwrap.json文件。它会将你当前package.json中引用的依赖版本锁定,当下次执行npm install时,它默认安装的其实是shrinkwrap.json中锁定的依赖版本号。
注意:如果你想让package.jsonshrinkwrap.jsonnode_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常用技巧的更多相关文章

  1. 提升你的开发效率,10 个 NPM 使用技巧

    对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...

  2. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  3. 【shell 大系】Linux Shell常用技巧

    在最近的日常工作中由于经常会和Linux服务器打交道,如Oracle性能优化.我们数据采集服务器的资源利用率监控,以及Debug服务器代码并解决其效率和稳定性等问题.因此这段时间总结的有关Linux ...

  4. oracle存储过程常用技巧

    我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集 ...

  5. Vim 常用技巧:

    Vim 常用技巧: 将回车由默认的8个空格改为4个空格: 命令:set sw=4 修改tab为4空格: 命令:set ts=4 设置每一级的缩进长度: 命令:set shiftwidth=4 设置文件 ...

  6. JS~~~ 前端开发一些常用技巧 模块化结构 &&&&& 命名空间处理 奇技淫巧!!!!!!

    前端开发一些常用技巧               模块化结构       &&&&&     命名空间处理 奇技淫巧!!!!!!2016-09-29    17 ...

  7. Android ListView 常用技巧

    Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...

  8. JavaScript常用技巧总结(持续添加中...)

    在我学习过程中收集的一些常用技巧: typeof x !== undifined 判断x是否已定义: x === Object(x)  判断x是否为对象: Object.keys(x).length ...

  9. Eclipse调试常用技巧(转)

    Eclipse调试常用技巧 转自http://daimojingdeyu.iteye.com/blog/633824 1. 条件断点 断点大家都比较熟悉,在Eclipse Java 编辑区的行头双击就 ...

随机推荐

  1. 报错:空指针java.lang.NullPointerException 原因 Action层 private UserService userservice 上未加@Autowire注解

    java.lang.NullPointerException at com.itheima.test.Test2.fun1(Test2.java:18) at sun.reflect.NativeMe ...

  2. 删除匹配某个pattern的一组键

    删除匹配某个pattern的一组键 $redis = cmsRedis::getInstance(); $sq_nos = $redis->keys('show_package_info:seq ...

  3. java全栈day33--html

    本天要完成6个任务,并且布局静态页面(首页)详细分为六个部分  如下 网站信息页面案例(字体标签.排版标签) 网站图片信息页面案例(图片标签) 网站友情链接页面案例(列表标签) 网站首页案例(表格标签 ...

  4. Bootstrap 组件之 Nav

    一.简介 Nav 指导航页.这里 是一个线上例子. 使用了 .nav 的标签就是一个 Nav.下面举例. {注意} 记住,下面的几种导航页都依赖 .nav. 二.导航页 添加 .nav-tabs. & ...

  5. Linux修改MySQL max_allowed_packet 值

    修改配置文件 vi /etc/my.cnf change "max_allowed_packet = 1M" to "max_allowed_packet = 32M&q ...

  6. dubbo结果缓存机制

    此文已由作者赵计刚授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. dubbo提供了三种结果缓存机制: lru:基于最近最少使用原则删除多余缓存,保持最热的数据被缓存 thre ...

  7. c++位运算符 | & ^ ~ && ||,补码,反码

    一:简介 1 位逻辑运算符: & (位   “与”)  and       ^  (位   “异或”)       |   (位    “或”)   or       ~  (位   “取反” ...

  8. git commit失败

    1.使用命令  git rm test.txt 删除版本库中文件, 下一步:git commit 提交 出现如图: 这是因为没有同时提交信息,即:git commit -m "这里是信息&q ...

  9. Go语言在线培训哪里好?Git操作和代码管理

    在实际的项目开发过程中,多人进行项目开发,需要涉及到代码管理和协同管理.这就需要使用到代码协同管理工具.在过去,大家都熟悉使用的是SVN软件,而现在Git代码仓库管理软件的使用更为广泛.在本系列实战项 ...

  10. Python Flask模块

    模块是一个包含响应文本的文件,其中包含占用位变量表示的动态部分,其具体值只在请求的上下文中才知道.使用真实值替换变量,再返回最终得到的响应字符串,这一过程称为渲染.为了渲染模块,Flask使用一个名为 ...