运行npm init或npx create- response -app等命令几乎构建js项目的首选方式,无论是为客户端或服务器端,还是桌面应用程序。
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目录。
设置默认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"
}
}
cross-env是 实现跨平台兼容性的最无缝的方法,但还有其他两个流行的工具,它们可以帮助实现跨平台兼容性:
rimraf 可以安装在全球运行跨平台脚本
ShellJS 是Unix shell命令在Node.js API上的可移植实现。
并行运行脚本
可以使用&&来依次运行两个或多个进程。但是并行运行脚本呢?为此,我们可以从各种npm包中进行选择。concurrent 和 npm-run-all 是最流行的解决方案。
首先通过 npm i -D concurrently 安装开发依赖。然后按照以下格式将其添加到脚本中:
{
"start": "concurrently \"command1 arg\" \"command2 arg\""
}
在不同的目录中运行脚本
有时,在不同的文件夹中拥有一个包含多个package.json文件的应用程序。从根目录访问这些脚本会很方便,而不是每次要运行脚本时导航到不同的文件夹,有两种方法可以执行此操作。
第一种是手动 cd 并运行对应的命令:
cd folder && npm start && cd ..
还有一个更优雅的解决方案,即使用–prefix标志指定路径:
npm start --prefix path/to/your/folder
下面是一个工作应用程序中此解决方案的示例,我们希望在前端(在客户机目录中)和后端(在服务器目录中)运行 npm start。
"start": "concurrently \"(npm start --prefix client)\" \"(npm start --prefix server)\"",