[Using npm] npm 最佳实践

根据这里整理所得

1. npm 基本信息

  • npm --version : npm 自己的版本号
  • npm version:node.js栈中各模块的版本
  • npm help NPM_CMD: 如npm help test

2. node 项目初始化

  • npm init 可加 npm init --yes 跳过询问使用默认选项创建 package.json
  • npm config set init.author.name YOU_NAME && npm config set init.author.email YOU_EMAIL 设置 package.json 中默认包开发者的信息

3. 查找第三方包

可通过 npms.io 来了解第三包的质量

4. 了解 npm 的包

  • npm home PACKAGE_NAME - 包主页
  • npm bugs PACKAGE_NAME - 包bug提交页
  • npm repo PACKAGE_NAME - 包仓库地址

5. 保存包依赖

  • npm install --save 生产环境依赖的包; npm install --save-dev 测试开发需要的包
  • npm congfig set save-prefix='~' 设置对包的版本要求,这里表示绝对等于

6. 锁定包依赖的版本

即使项目本身使用的是精确版本,但不能保证第三方包的所有依赖都是精确版本
使用 npm shrinkwarp 来锁定所有的依赖包的版本,会生成 npm-shrinkwrap.json 文件,当使用 npm install 是会根据该文件去下载包依赖

7. 检测包依赖是否过期

npm outdated 另外可通过 Greenkeeper来管理过期的包

8. 生产环境

  • npm install --production 单个项目中安装生产环境的包
  • NODE_ENV=production npm install 通过环境变量来全局设置

9. 项目安全

  • 注意 .npmrc 中是否包含敏感信息
  • publish 包的时候 npm 会根据 .gitignore.npmignore 中的配置来忽略文件

10. 临时包的使用

npm link PACKAGE_NAME 链接本地的包,使其能够在本项目中可以被全局 require 到

# in local package direction,create a symlink to the global folder
npm link

# in project direction, link package to the current node_modules 
npm link PACKAGE_NAME

# in project js file
var package_name = require('PAVKAGE_NAME')

推荐阅读更多精彩内容

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 5,854评论 2 36
  • npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具...
    build1024阅读 6,406评论 0 8
  • 描述 npm从以下来源获取配置值,按优先级排序: 命令行标记 在命令行上放置--foo bar设置foo配置参数为...
    竹天亮阅读 36,131评论 0 7
  • 本文内容基于 npm 4.0.5 概述 npm (node package manager),即 node 包管理...
    静默虚空阅读 1,760评论 0 8
  • Node.js 让 JavaScript 编写服务器端应用程序成为可能。它建立在 JavaScript V8(C+...
    艾悠乐教育阅读 13,109评论 1 4
  • 所有的东西都是有力量返回来,好的事情会有好的结果返回来,坏的事情就会有不好的后果,都要自己去承受。 在一部台湾家庭...
    鳕零kelsey阅读 157评论 0 1
  • 爱的五种能力三、爱的五种能力 爱有五种能力,这五种能力是一个完整的系统。每种能力都很重要,并且相互影响,一种能力不...
    小马君_Ellie阅读 324评论 0 2
  • 今天和DOB团队讨论加盟方案,大家很有感觉,准备明年2月上上海展会。一切都要踩在节点上,在儿童派对市场升温的时候,...
    一世惊鸿阅读 34评论 0 0