【问题标题】:How To Refer To The `main` Field Value Inside of package.json?如何引用 package.json 中的 `main` 字段值?
【发布时间】:2017-08-31 19:06:41
【问题描述】:

package.json 中,通常通过包含文件路径(相对于项目的根目录)作为@987654322 的值来指定模块的主要(或main)入口点@。

同样,the scripts field 是一个字典,其键是关键字,允许用户运行作为其值在终端内传递的相关命令。一种常见的脚本允许您运行 Node 或 Nodemon。为了说明,这是一个示例 package.json 配置:

{
  "name": "example",
  "version": "1.0.0",
  "description": "Example package.json for StackOverflow question",
  "main": "index.js",
  "scripts": {
    "dev": "nodemon index.js"
  },
  "author": "IsenrichO",
  "license": "ISC",
  "dependencies": {
    "express": "^4.13.4",
    "nodemon": "^1.9.1"
  }
}

您会注意到上面的dev 脚本命令在index.js 文件上运行Nodemon。此文件也是main 字段中指定的应用程序入口点。

那么我的问题是:是否可以在您的scripts 之一中引用package.jsonmain 键指定的文件?换句话说,可以写类似

  "scripts": {
    "dev": "nodemon main"
  }

这似乎很迂腐,但却是一个真正的问题。感谢所有帮助!

【问题讨论】:

  • 从我读到的docs.npmjs.com/misc/scripts 看来,脚本正在寻找某种可执行文件。在阅读文档之前,我最初的想法是并且似乎是正确的,nodemon main 会尝试在您的根目录(对于项目)中运行一个名为 main 的文件,例如从命令行运行 nodemon main 可能会查找和运行 main.js(如果存在)或抛出错误(如果 main.js 不存在)。也许其他人比我更有洞察力。

标签: javascript json npm terminal package.json


【解决方案1】:

我相信 nodemon 默认使用你的main 脚本,所以你可以使用"dev": "nodemon"

但是:您可以使用 $npm_package_KEY 引用您的 package.json 的键和变量。

在你的情况下:

"scripts": {
  "dev": "nodemon $npm_package_main"
}

子属性如:$npm_package_author_name

在 Windows 上,您需要删除 $ 并将变量包装在 % 中:

"scripts": {
  "dev": "nodemon %npm_package_main%"
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-04-26
  • 2022-08-19
  • 2016-08-25
  • 2015-11-09
  • 2017-11-17
  • 2016-06-29
  • 2019-11-06
  • 1970-01-01
相关资源
最近更新 更多