关于package.json

package.json配置项

package.json是npm项目的配置文件,记录了项目的相关说明及配置信息,这个文件内的数据是以JSON格式组织的。从package-json配置文档来看,它包含的配置项非常丰富。但并不是所有的配置项都是必选项。

scripts 配置项

当使用npm init命令初始化完一个项目后,package.json被创建。其中scirpt默认配置如下。如果命令行继续运行npm run test, 控制台就会执行test任务,并推出。

基本使用

scripts配置节包含的是 任务名称和任务命令的键值对,所以可以在scripts配置节添加像test任务以类似的任务名和任务命令。如果命令比较长且参数较多,开发者需要注意任务命令中特殊字符的转义处理,使其符合JSON文本的格式。

1
2
3
4
5
6
7
{
...
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
}
...
}

前置和后置脚本

script配置的功能还不止如此,每个任务还支持前置任务和后置任务,示例配置如下。如果在命令行运行npm run compress,则下面这三个任务将被一次执行。

1
2
3
4
5
6
7
8
9
{
...
"scripts": {
"precompress": "{{ executes BEFORE the `compress` script }}",
"compress": "{{ run command to compress files }}",
"postcompress": "{{ executes AFTER `compress` script }}"
}
...
}

scripty

有时候任务命令脚本过长时就会显得package.json混乱和臃肿,npm工具scripty应运而生。
如何使用

  • 在项目根目录下新建scripts目录
  • 新建以任务名称作为文件名称的shell文件,eg: test.sh
  • 在shell文件中便携任务命令脚本
  • 配置package.json的scripts命令为scripty
    1
    2
    3
    4
    5
    6
    7
    "scripts": {
    "test": "scripty"
    "test1": "scripty"
    "test2": "scripty"
    "test3": "scripty"
    "test4": "scripty"
    }
  • npm run test测试任务
    使用scripty的关键是,任务名称要与scripts目录下的脚本文件名称相对应。实际上使用scripty,将使开发者能够在shell中编写更加强大而丰富的功能,而不只是执行简单的任务命令。

关于package.json
https://jacksiongt.github.io/2021/04/30/关于package.json/
作者
Jacksion
发布于
2021年4月30日
许可协议