构建Node.js脚手架

2018-11-02  本文已影响39人  袁俊亮技术博客

构建Node.js脚手架

前言

像我们熟悉的 vue-cli,react-native-cli 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们生成一个初始项目。在实际工作中,我们可以定制一个属于自己的脚手架,来提高自己的工作效率。

脚手架的原理

generators是yeoman生态系统的积木,通过yo命令运行而为终端用户生产文件,yeoman-generator本质上是一个有着完整项目结构的模板 , yo根据用户选择不同的generator生成不同的项目。

imweb-cli也是一个以模板为核心的脚手架, 通过定制不同的模板, 可以实现初始化项目以及为已有项目添加符合规范的文件片段,这一点在新建页面的时候特别有用。 想了解的同学可以访问(https://www.npmjs.com/package/imweb-cli)

第三方库

初始化项目

{
  "name": "create-demo",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "bin": "./bin/index.js",   // 在这里加入构建工程入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

./bin/index.js文件

#!/usr/bin/env node  // 注意,这一句很关键,一定要加上
const program = require('commander');
const download = require('download-git-repo');
const ora = require('ora');
const chalk = require('chalk');
const symbols = require('log-symbols');

const spinner = ora('start create fibos dapp')

program.version('1.0.0', '-v, --version')
       .command('init <name>')
       .action((name) => {
          spinner.start()
          download('direct:https://github.com/yuanjunliang/create-demo.git', 'test/tmp', {clone: true}, (err) => {
              if(err){
                spinner.fail('create fibos dapp failed')
              }else{
                spinner.succeed('create fibos dapp success')
              }
          })
       });
program.parse(process.argv);

把项目发布到npm,然后npm install create-demo -g全局安装。就可以通过下列命令创建一个项目了

create-demo init project_name

参考文档

上一篇下一篇

猜你喜欢

热点阅读