Jeeeeeeeeen

NPM 小技巧

November 15, 2015 | 1 Minute Read

npm

overview

开发环境基本都是在nodejs的开发环境里,少不了与npm打交道。这里记录了目前经常用到的命令。

初始化

npm init [-f|--force|-y|--yes]

初始化时创建 package.json 文件,并有效提示必要或默认的选项。而参数 -f 或者 -y 将仅仅使用默认值且不做提示。

依赖包

全局安装参数 -g(- -globle),局部分为依赖(-S 或 - -save)和开发依赖(-D 或 - -save-dev)

  • 安装:$ npm install <pkg> , alias: npm i
  • 卸载: npm uninstall <pkg>, aliases: remove, rm, r, un, unlink
  • 更新:$ npm update [-g] <pkg>

package.json 的json格式声明的字段,可以查看官网对它们的解释。

关联

创建关联 npm link <pkg>, alias: npm ln

  • 将全局安装的pkg关联到当前目录中
  • 将本地的pkg关联到全局中

执行命令(脚本)

npm run-script <command> [-- <args>...]
alias: npm run

执行任意脚本命令。比如项目中使用webpack模块管理工具,声明在scripts字段如下:

"scripts": {
  "watch": "webpack --watch",
  "server": "webpack-dev-server --inline --port 80 --hot --quiet",
  "build": "webpack --progress --hide-modules"
}

那么可以执行如下命令与之对应:

  • $npm run watch # 监听文件
  • $npm run server # 开启80端口的本地服务
  • $npm run build # 编译文件
  • NODE_ENV=production npm run build # 结合webpack 并设置当前控制台的变量值,并执行发布时的编译

其他有用的命令

查看已安装的依赖包:npm ls

npm ls [[<@scope>/]<pkg> ...]
aliases: list, la, ll

查找匹配到已注册过的依赖包: npm s

npm search [-l|--long] [search terms ...]
aliases: s, se

需求帮助:npm help

npm help <term> [<terms..>]

Conclusion

以上的命令完全可以到官网查看到。其中packapge.json里字段声明也是经常用到,限于篇幅,且官方解释的很清楚,这里不再累赘。

当然经常遇到的问题是依赖包安装不了,因为外网连接的问题。可以使用 淘宝 NPM 镜像, TAONPM

另外,win环境下,依赖包删除相当困难,与linux完全不同的文件系统模式,简直天差万别。

bower 偏重纯前端应用, bower 和 npm 的差别在于对模块封装的粒度不同, bower 和 npm 区别

npm 主要是提供node_module的依赖支持, 而且是类似maven的dependency tree结构bower 是纯前端库的依赖支持; npm提供nested dependency而且允许多版本共存, bower尽量保持同一个库仅有一个single copy.

npm 更多配置 npm-completion

resource