如何在package.json中编写脚本动态创建项目文件夹与子文件?
实现动态生成文件夹和文件的脚本方案
步骤1:创建Node.js脚本文件
在项目根目录新建generate-module.js文件,内容如下:
const fs = require('fs'); const path = require('path'); // 获取命令行传入的模块名称 const moduleName = process.argv[2]; if (!moduleName) { console.error('请传入模块名称,例如:npm run generate user'); process.exit(1); } // 定义目标路径 const targetDir = path.join(__dirname, 'src', moduleName); const serviceFile = path.join(targetDir, `${moduleName}.service.js`); // 递归创建文件夹(自动处理父目录不存在的情况) fs.mkdir(targetDir, { recursive: true }, (err) => { if (err) { console.error('创建文件夹失败:', err); return; } // 生成service文件的初始内容,可按需修改 const initialContent = `// ${moduleName} 服务模块 class ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)}Service { // 示例方法 get${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)}List() { // 业务逻辑实现 } } module.exports = ${moduleName.charAt(0).toUpperCase() + moduleName.slice(1)}Service; `; fs.writeFile(serviceFile, initialContent, (err) => { if (err) { console.error('创建文件失败:', err); return; } console.log(`模块 ${moduleName} 已成功生成:${targetDir}`); }); });
步骤2:在package.json中配置脚本
打开项目根目录的package.json,在scripts字段中添加以下内容:
{ "scripts": { "generate": "node generate-module.js" } }
步骤3:运行脚本生成模块
在终端执行命令(将user替换为你需要的模块名称):
npm run generate user # 或使用yarn yarn generate user
扩展说明
- 若需要生成更多类型文件(如controller、model),可在脚本中新增
fs.writeFile逻辑,添加对应文件路径和初始代码。 - 脚本中的初始内容可根据项目规范调整,比如换成ES模块的
export default语法。 fs.mkdir的recursive: true参数确保src目录不存在时也会自动创建。
内容的提问来源于stack exchange,提问作者Ankit Raj
相关产品推荐
相关产品推荐

