You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向package.json传递参数,实现npm run newpost <name>生成Hugo博客MD文件

实现npm run newpost <name>触发Hugo新建文章的方法

要实现用户输入npm run newpost <name>就自动执行hugo new blog/<name>.md,核心是在package.json的scripts中正确获取并传递命令行参数,以下是具体实现方案:

类Unix系统(Linux/macOS)配置

直接在scripts中使用Shell的参数变量$1捕获用户输入的<name>:

{
  "scripts": {
    "newpost": "hugo new blog/$1.md"
  }
}

用户执行命令时,直接输入:

npm run newpost my-first-post

若担心npm误解析参数,可加--明确分隔脚本与参数,写法更稳妥:

npm run newpost -- my-first-post

两种方式最终都会执行:

hugo new blog/my-first-post.md

Windows CMD环境配置

Windows CMD的参数变量语法为%1,需修改scripts配置:

{
  "scripts": {
    "newpost": "hugo new blog/%1.md"
  }
}

用户执行命令:

npm run newpost my-first-post

跨平台兼容方案(可选)

如果需要脚本在所有系统通用,且不想额外安装依赖,可借助Node.js写一个简单的脚本文件(比如newpost.js):

const { execSync } = require('child_process');
const postName = process.argv[2];
if (!postName) {
  console.error('请输入文章名称,例如:npm run newpost my-post');
  process.exit(1);
}
execSync(`hugo new blog/${postName}.md`, { stdio: 'inherit' });

然后修改package.json的scripts:

{
  "scripts": {
    "newpost": "node newpost.js"
  }
}

这种方式下,无论类Unix还是Windows系统,用户都只需执行npm run newpost <name>即可。

内容的提问来源于stack exchange,提问作者John Deighan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 20:35:21