自动添加/重命名Express.js应用程序中的文件夹

时间:2016-11-07 14:26:05

标签: javascript node.js express

我正在尝试创建一个简单的Node.js Express网站,我正在运行以下命令:

cd node
npm install pug express
express project_name
cd project_name && npm install
npm start

运行时,它会创建/public文件夹,/images/javascriptsstylesheets

我可以在创建时使用/img/jscss自动替换这些内容吗?

我只是尝试使用一组快速命令来创建一个简单的Express服务器。

1 个答案:

答案 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更改为您需要的项目