【发布时间】:2019-09-25 12:18:19
【问题描述】:
我知道这不是一个好主意,但我有一个案例,我有以下目录结构并且我无法更改该结构:
[projectRootDir]
[src]
[tests]
[otherDirs]
[configuration]
package.json
mocha.opts
other files...
有没有办法在没有 cd .. 的情况下执行 npm 命令到 [configuration] 目录?
在 package.json 中,测试文件等的模式配置为以下模式:
test/**/*Test*.spec
所以我需要让 package.json 知道根目录在 [projectRootDir] 中。
node_modules 应该在 [configuration] 中,但如果没有这个可以完成上一步(可以创建符号链接),这不是强制性的情况
【问题讨论】:
-
请问为什么不能将您的
package.json放在您的包根目录中?这是使用npm的惯用方式,并且(如果这是一个Nodejs 应用程序)允许您的后端源代码到npm install下载的require()模块而不使用路径。 -
当然。在根目录中,我有无法替换的 package.json。这个来自根目录的 package.json 包含整个配置以及项目依赖项、项目任务等。在配置目录中的 package.json 中,我们只负责一项任务,即运行测试。我知道这听起来很奇怪,但事实就是这样
-
如果您真的想要您所追求的行为,请考虑合并两个
package.json。npm提供的功能(将 PATH 设置为包含node_modules/.bin并将工作目录设置为package.json路径的目录名,假设package.json位于项目的根目录中)。如果它不存在,您需要像以前一样解决此问题。
标签: javascript angularjs npm package.json