You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在npm run执行TypeORM脚本时保留命令行标志?

解决npm脚本中传递参数(含标志)的问题

这是npm脚本使用中很常见的小坑!当你直接执行npm run typeorm migration:create -n Example时,npm会把-n这类选项当成npm自身的参数处理,而不是传递给你配置的typeorm脚本,所以才会出现参数被移除的情况。

核心解决方法:使用双破折号--分隔参数

npm提供了--语法,用来明确告诉它:--之后的所有内容都要原封不动传递给目标脚本,不要自己处理。

你只需要把执行命令改成这样:

npm run typeorm -- migration:create -n Example

此时实际执行的命令就会是你期望的:

ts-node ./node_modules/typeorm/cli.js migration:create -n Example

进阶优化:封装专用脚本(可选)

如果经常需要执行这类命令,你可以在package.jsonscripts里单独封装一个快捷脚本,避免每次都输入--

"scripts": {
  "typeorm": "ts-node ./node_modules/typeorm/cli.js",
  "migrate:create": "npm run typeorm -- migration:create -n"
}

之后创建迁移的时候,只需要执行:

npm run migrate:create Example

这样用起来更简洁,也不容易出错。

补充说明

不同包管理器的参数传递逻辑略有差异,但--是npm的标准用法,只要遵循这个规则,所有带标志(比如-n--name)的参数都能正确传递给目标脚本。

内容的提问来源于stack exchange,提问作者curious lad

火山引擎 最新活动