码迷,mamicode.com
首页 > 其他好文 > 详细

自定义脚手架

时间:2017-05-11 10:18:36      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:init   1.0   tar   依赖   get   ref   switch   new   nbsp   

前提:

  目录结构

    my-project

      └ bin

          └myapp.js

      └ package.json

//myapp.js的内容如下

技术分享
#!/usr/bin/env node
const fs = require(‘fs‘);
const dirPath = process.cwd();
const argvss = process.argv.slice(2);

function createPublicFun(dirName) {
    this.dirName = dirName || "myApp";//默认创建myApp项目;
    this.cmd = ‘cd ‘+this.dirName+‘ && npm i jquery‘;//初始化npm依赖;
    this.public = function() {
        var shell = require(‘shelljs‘);
        shell.exec(cmd);
        console.log("初始化完成!")
    }
    if(!fs.existsSync(dirPath+"\\"+ this.dirName)){
        fs.mkdir(dirPath+"\\"+ this.dirName);
        fs.mkdir(dirPath+"\\"+ this.dirName+"\\node_modules");
    };
    this.public();
}
switch (argvss[0]){
    case ‘new‘:
        if(argvss[1]){
            createPublicFun(argvss[1]);
        }else{
            console.log("项目名称不能为空!")
        }
        break;
    case "init":
        if(argvss[1]){
            createPublicFun(argvss[1]);
        }else{
            createPublicFun();
        }
        break;
    default:
        console.log("命令错误!");
        break;
}
process.exit();//退出
View Code

//package.json的内容如下

例如简单的package.json:

{
  "name": "my-project-name",
  "version": "0.1.0",
  "bin":"bin/myapp.js"  
}

注意:package.json里面的【bin】必须指向某个js,个人建议默认执行bin/**.js

最后只要安装在全局就可以了。具体教程在 https://www.npmjs.com/package/init-cli_zys

自定义脚手架

标签:init   1.0   tar   依赖   get   ref   switch   new   nbsp   

原文地址:http://www.cnblogs.com/zys8119/p/6839307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!