我正在尝试创建一个简单的Node.js Express网站,我正在运行以下命令:
cd node
npm install pug express
express project_name
cd project_name && npm install
npm start
运行时,它会创建/public
文件夹,/images
,/javascripts
,stylesheets
。
我可以在创建时使用/img
,/js
,css
自动替换这些内容吗?
我只是尝试使用一组快速命令来创建一个简单的Express服务器。
答案 0 :(得分:1)
选项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
您可能还想制作此脚本global并为其提供execution permissions以提供使用的通用cli工具,例如
my-express project_name
选项2)节点脚本
与bash脚本相同,除了使用node编写。
#!/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);
}
});
}
您还需要在同一目录中使用以下内容创建package.json
{
"name": "my-express",
"version": "0.0.1",
"bin": {
"my-express": "./my-express.js"
}
}
然后运行npm install -g
将脚本链接到路径上的某个位置,这样就可以像使用任何其他shell命令一样使用它了
用法
my-express my_project
选项3)自定义快速生成器构建
分叉express-generator项目并将these 3 lines更改为您需要的项目