每天,数以百万计的开发人员使用 npm 或 yarn 来构建项目。运行npm init或npx create- response -app等命令几乎构建JS项目的首选方式,无论是为客户端或服务器端,还是桌面应用程序。
但是npm不仅仅是初始化项目或安装包。在本文中,我们将会介绍 npm 的13个技巧来最大限度地利用npm:从简单的快捷方式到自定义脚本。
由于我们中的许多人每天都使用npm,从长远来看,即使节省少量的时间也会产生显著的影响。这些技巧是针对初学者和中级开发人员的,但是即使您是一位经验丰富的开发人员,我希望你仍然能够找到一到两个你以前没有遇到过的特性。
想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!
主要内容
学习基本快捷方式
设置默认npm init属性
让脚本跨平台兼容
并行运行脚本
在不同的目录中运行脚本
延迟运行脚本直到端口准备就绪
列出并选择可用脚本
运行前后脚本
控制应用程序版本
从命令行编辑package.json
自动设置和打开你的github库
自定义npm init脚本
使用自定义npm init脚本将你的第一个 Commit 提交到 GitHub
1.学习基本快捷方式
我们从最基本的开始,学习最常见的npm快捷方式从长远来将会节省很多时间。
安装 — 常规:npm install,简写:npm i。
测试 — 常规:npm test,简写:npm t。
帮助 — 常规:npm --help,简写:npm -h。
全局标志 — 常规: --global,简写:-g。
保存为开发依赖 - 常规: - save-dev,简写:-D。
npm init 默认值 - 常规:npm init --yes 或 npm init --force,简写:npm init -y 或 npm init -f
我们知道使用-save或-S来保存包,但现在这是个已经是默认值。要安装一个包而不保存它,可以使用 ——no-save标志。
不太常见的快捷键
还有一些不常见的快捷方式,如下:
安装包信息将加入到optionalDependencies(可选阶段的依赖)- 常规:--save-optional, 简写:-O。
精确安装指定模块版本 - 常规:--save-optional, 简写:-O。
如果需要在本地保存一个npm包,或者通过单个文件下载选择一组可用的包,可以使用--save-bundle或-B将它们捆绑在一起,并使用npm pack获得捆绑包。
根的快捷方式
. 符号通常用于表示应用程序的根目录,npm术语中的应用程序入口点,即package.json中指定为“main”的值
{ "main": "index.js" }
这个快捷方式也可以用于像npx create-react-app . 这样的命令。因此,可以运行npx create-react-app .,而不是使用 npx create-react-app my-app 创建一个新的my-app目录。
2. 设置默认npm init属性
当运行npm init开始一个新项目时,你可能会发现自己一次又一次地输入配置细节。假如,你可能是项目的主要负责人。有时为了节省时间,可以为这些字段设置默认值,如下所示:
npm config set init.author.name "Joe Bloggs" npm config set init.author.email "JoebLoggs@gmail.com" npm config set init.author.url "Joebloggs.com" npm config set init.license "MIT"
要检查是否正确添加了这些属性,在终端输入 npm config edit查看配置文件信息。当然也j可以通过直接在打开的配置文件编辑信息。 如果要编辑全局npm设置,使用npm config edit -g。
要重新初始化默认设置,可以使用以下脚本。第一行用空字符串替换配置文件,第二行用默认设置重新填充配置文件。
echo "" > $(npm config get userconfig) npm config edit
上面的脚本将重置用户默认值,下面的脚本将重置全局默认值
echo "" > $(npm config get globalconfig) npm config --global edit
3. 让脚本跨平台兼容
任何在命令行上运行的代码都有兼容性问题的风险,特别是在Windows和基于unix的系统(包括Mac和Linux)之间。如果你只处理特定的项目,那么这不是问题,但是在许多情况下,跨平台兼容性很有必要的:任何开放源码或协作项目,以及示例和教程项目,都应该能够工作,而不管操作系统是什么。
谢天谢地,解决方案很简单。有几个选项可供选择,但效果最好的是cross-env。使用npm i -D cross-env将其作为开发依赖项安装。然后在任何环境变量之前包括关键字cross-env,就像这样:
{ "scripts": { "build": "cross-env NODE_ENV=production webpack --config build/wepack.config.js" } }