查看默认设置:
npm config ls -l
删除指定的配置项:
npm config delete <key>
修改指定的配置项:
npm config set <key> <value>
修改源:
npm config set registry https://registry.npm.taobao.org
临时修改下载源:
npm i jquery -S --register=https://register.npm.taobao.org
查看全局安装路径:
npm config get prefix
修改全局安装路径:
npm config set prefix G:/node_modules_global
初始化目录:
npm init
搜索包含关键字的包:
npm search jquery
查看指定NPM包的信息
npm info jquery
查看指定NPM包的指定信息
npm info jquery version
运行本地NPM包
- 将命令添加到
scripts中,使用npm run script; - 使用
npx—— 需要npm@6.5+; $(npm bin)/webpack -v——Unix环境可用;
全局安装(如gulp):
npm install -g gulp
全局包卸载(如gulp):
npm uninstall -g gulp
项目本地安装(如gulp):
npm install gulp --save-dev
本地文件安装依赖(如node-sass)
- 第一步、
npm info node-sass//查看node-sass在github中的地址;
homepage: 'https://github.com/sass/node-...',
第二步、
//可以直接通过url安装依赖;必须在Git环境下安装
* `npm i -D https://github.com/sass/node-sass` 【二选一】;//也下载解压node-sass,通过本地路径安装依赖
* `npm i -D ./node-sass` 【二选一】
注意:本地安装只是创建了一个软连接,如果将下载地址的包删掉,恭喜你:运行程序找不到依赖了
项目本地卸载(如gulp):
npm uninstall gulp --save-dev
查看全局安装包:
//会查看到安装包所包含的所有依赖文件;
npm ls --global
//只查看顶级安装包;
npm ls --global -depth 0
查看本地安装包:
npm ls
删除安装包缓存:
npm cache clean
npm使用不同源
npm i -g nrm借助于第三方包nrm管理npm源
nrm ls
nrm use taobao
nrm add custom http://***运行本地NPM包
- 将命令添加到
scripts中,使用npm run script; - 使用
npx—— 需要npm@6.5+; $(npm bin)/webpack -v——Unix环境可用;./node_modules/.bin/webpack -v——Window环境可用
查看命令列表
npm run // 罗列scriptsnpm run scripts中使用package.json变量
Unix:$npm_package_versionWindows:%npm_package_version%cross-var:跨平台
查看npm预定义变量
npm run env自动升级package.json中的version
npm version major// 根据semver版本级别自动升级版本号semver.inc('1.0.0', 'major')// 借助semver工具包standard-version// 第三方NPM包
npm run script自定义命令传参
npm查找并吞并npm run-script <command>后续指定的参数,e.g.[--silent] [-- <args>...]在
npm run-script <command>后使用--界定npm参数的结束,npm会将--之后的所有参数直接传递给自定义的脚本Issue解释
npm run start -- -p cheesenpm run的内置参数
通过上述,对npm run自身的参数产生了好奇
npm run test -s // 静默输出,除非发生错误
npm run test --loglevel silent // 静默输出,除非发生错误
npm run test -d // 完整日志输出
npm run test --loglevel verbose // 完整日志输出并、串行执行任务
npm run
// 串行执行任务"&&"
npm run lint:js && npm run lint:css && npm run lint:json
// 并行执行任务"&"
npm run lint:js & npm run lint:css & wait
// ^ == & wait等待所有结果返回之后,才打印命令运行的结果。不然会直接输出结果,而不会等待其中时间较长的运行命令。
// ^ == & wait适用于Unix系统第三方npm-run-all
可以使用通配符
npm-run-all lint:*npm run-script添加注释
由于*.json文件不支持添加注释,通过两种hack的形式添加。
scripts: {
"//": "运行所有代码检查和单元测试",
"test": "npm-run-all --parallel lint:* mocha"
"test": "# 运行所有代码检查和单元测试 \n npm-run-all --parallel lint:* mocha"
}两种hack方式都有明显的缺陷:
//:本身是命令,npm run列出来的命令列表不能把注释和实际命令区分开# comment \n:增加了命令脚本的阅读复杂度,仅适用于Unix平台
跨平台
rimraf 或 del-cli
用来删除文件和目录,实现类似于 rm -rf 的功能;
cpr
用于拷贝、复制文件和目录,实现类似于 cp -r 的功能;
make-dir-cli
用于创建目录,实现类似于 mkdir -p 的功能;
环境变量cross-env
Mac上可以在命令行中设置环境变量,而Windows不能这样操作scripts: { "test": "NODE_ENV =production node bin/index.js" }cross-env可以忽略平台差异,通过定义cross-env NODE_ENV =production node bin/index.js,在各种平台(Mac/Windows)都可以通过process.env.*访问NODE_ENV——不能通过cross-env获取在process.env.*定义的变量
变量引用cross-var-no-babel
引入cross-var会自动安装了babel,如果想保持依赖更轻量的话,可以考虑使用cross-var-no-babel。
NPM包在浏览器端的使用
NPM包的使用:
- 在
Node环境中,将node_modules一起上传至服务器端 - 在
Webpack环境中,将node_modules中的代码打包至bundle.js中,在*.html中作为脚本引入 - 无需任何工具,在
*.html中优先引入jspm,然后引入其它NPM包即可,用法查看官网
ts场景
node -r ts-node/register pm.ts配置npm init信息
npm config set init.author.email "123@gmail.com"
npm config set init.author.name "123"
npm config set init.author.url "http://github.com/123"
npm config set init.license "MIT"
npm config set init.version "0.0.1"通过以上配置,可以避免每次初始化项目都去修改package.json文件信息
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。