在Express.js应用程序中自动添加/重命名文件夹
我正在尝试创build一个简单的Node.js Express网站,并运行以下命令:
cd node npm install pug express express project_name cd project_name && npm install npm start
运行时,它将创build/public
文件夹以及/images
, /javascripts
, stylesheets
。
有没有办法,我可以自动replace这些/img
, /js
, css
当我创build它?
我只是试图让我创build一个简单的Express服务器的一个快速的命令集。
选项1)Bash脚本
一种方法是将mv添加到您的命令列表中
mv images img # rename images to img mv javascripts js # rename javascripts to js mv stylesheets css # rename stylesheets to css
然后你可以自动化成一个简单的bash脚本
my-express.sh
#!/bin/bash if [ "$#" == "1" ]; then express $1 cd $1 && npm install mv public/images public/img mv public/javascripts public/js mv public/stylesheets public/css npm start else echo "usage my-express <project-name>" fi
并使用它
./my-express.sh project_name
你也可能想让这个脚本是全局的并且给它执行权限来提供一个类似的通用cli工具
my-express project_name
选项2)节点脚本
与使用节点编写的bash脚本相同。
#!/usr/bin/env node var exec = require('child_process').exec; var projectName = process.argv[2]; var commands = [ 'npm install', 'mv public/images public/img', 'mv public/javascripts public/js', 'mv public/stylesheets public/css', 'npm start' ]; if (typeof projectName !== 'string' || projectName.length < 1) { console.log('Usage: node my-express <project-name>'); } else { var cmd = ['express ' + projectName,'cd ' + projectName] .concat(commands) .join(' && '); console.log('Executing\n', cmd.replace(/\&\&/g, '&&\n')); exec(cmd, function(error, stdout, stderr) { if (error) { console.error(error); } else { console.log(stdout); } }); }
您还需要在同一个目录下创build一个package.json
,其内容如下
{ "name": "my-express", "version": "0.0.1", "bin": { "my-express": "./my-express.js" } }
然后运行npm install -g
,将脚本链接到path上的某个位置,以便像其他shell命令一样使用它
用法
my-express my_project
选项3)自定义的快递发电机构build
分叉快递发电机项目,并将这3条线路更改为您所需要的