【发布时间】:2021-08-17 21:38:13
【问题描述】:
当从父 NPM 模块调用时,我需要访问在其中运行的 bash 脚本中子模块的 npm 环境变量。
项目伪结构:
Parent NPM Project
│
├── node_modules
│ │
│ ├── npm-submodule
│ │ │
│ │ ├── bash-script.sh
│ │ │
│ │ └── package.json
│ .
│
├── package.json
│
.
父 NPM 项目 — package.json:
{
"name": "parent-project",
"scripts": {
"get-package-name": "echo $npm_package_name",
"get-submodule-name": "npm-submodule"
},
"dependencies": {
"npm-submodule": "1.0.0"
}
}
NPM 子模块 — package.json:
{
"name": "npm-submodule",
"bin": "./bash-script.sh",
"scripts": {
"get-package-name": "echo $npm_package_name"
}
}
NPM 子模块 — bash-script.sh:
#!/bin/bash
npm run get-package-name
问题
从父模块中,当我运行npm run get-package-name 时,可以预见parent-project 会返回。
当我运行 npm run get-submodule-name 时,没有返回任何内容 — 以这种方式调用子模块时,子模块的 npm 环境变量似乎没有填充到子模块中。
在基于 bash 的上下文中,子模块如何访问它自己的 NPM 环境值,或者如果不这样做,直接从 package.json 读取它们?
【问题讨论】:
-
我见过这个:stackoverflow.com/q/40587216/2876202,但答案是错误的:“..node 环境变量只能使用节点进程中的进程全局变量访问,而不是系统范围的”,显然节点环境可以在父模块
package.json的运行脚本中访问——希望有一个解决方案????????
标签: node.js bash npm package.json environment