前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前端工程化之脚手架( ? )

前端工程化之脚手架( ? )

作者头像
源心锁
发布于 2022-08-01 07:03:34
发布于 2022-08-01 07:03:34
60100
代码可运行
举报
文章被收录于专栏:前端魔法指南前端魔法指南
运行总次数:0
代码可运行

阅读了我上一篇文章,就可以感受到环境配置对于前端有多么痛苦

那我今天的想法呢,就是紧赶着搭一个自己的脚手架出来,别整得我每次搭建项目都心态爆炸

那么按照网上的教程来说,还是蛮简单的

基本流程

基本设置

这是个可怕的大坑

先上张报错的图片

如果你电脑安装了这么个玩意儿并且是js的默认打开方式,这个大坑可能常伴你左右(网上有说在cli.js第一行添加某些玩意儿就行,但是我这里没有效果)

正确的做法是

修改默认打开方式为node

正式开始

首先明确一下我们的目标,我希望完成一个简单的但是有一定拓展性的脚手架,那么就需要具备一定的交互,然后可以解析命令行

  • 选用const inquirer = require("inquirer");这个热度较高的交互库
  • 选用const ora=require("ora")用于命令行动画
  • 选用download-git-repo作为模板下载工具

配置目录结构

这一块中的cli是我们的入口文件,配置入口文件要在package.json中配置

package.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "source-rst",
  "version": "0.0.1",
  "description": "a cli for react&&typescript&&sass",
  "main": "index.js",
  "bin": {
    "source-rst": "./bin/cli.js"
  },
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": {
    "name": "sourceheartlock",
    "email": "774933704@qq.com"
  },
  "license": "ISC",
  "dependencies": {
    "axios": "^0.21.1",
    "commander": "^8.1.0",
    "download-git-repo": "^3.0.2",
    "ejs": "^3.1.6",
    "inquirer": "^8.1.2",
    "ora": "^5.4.1",
    "util": "^0.12.4"
  }
}

npm link

通过npm link命令,可以让我们直接在命令行中输入"bin"中的命令运行文件

cli.js

对于一个简单的项目,需要哪些参数?

  • projectName
  • projectType
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
inquirer
  .prompt([
    {
      type: "input", //type: input, number, confirm, list, checkbox ...
      name: "projectName", // key 名
      message: "工程名", // 提示信息
      default: "source-rst-cli", // 默认值
    },
  ])
  .then((answers) => {
    let {projectName}=answers;
    let projectRoot=process.cwd();
    let templateRoot=__dirname;
    inquirer
      .prompt([
        {
          type: "list",
          name: "projectType",
          message: "选择生成的框架",
          choices: ["tsx&&react&&sass", "jsx&&react&&css_modules"],
          loop:true
        },
      ])
      .then((res) => {
        let {projectType}=res;
        console.log('all',projectName,projectRoot,templateRoot,projectType )
        downloadModel[projectType](projectName)
      });
  });

那么这里的代码运作起来的效果如下:

下载git上的模板

downloadModel[projectType](projectName) 上边代码中有这么一句,实际上就是对应的下载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var downloadGitRepo = require('download-git-repo') 
downloadGitRepo=util.promisify(downloadGitRepo);
const downloadModel={
  "tsx&&react&&sass":(projectName)=>{
    const url="https://github.com/GrinZero/source-rst-model-ts_sass_react-by_createreact.git"
    download(url,projectName)
  }
}
async function download(url,targetDir){
  return await wrapLoading(
    downloadGitRepo, // 远程下载方法
    'waiting download template', // 加载提示信息
    url, // 参数1: 下载地址
    path.resolve(process.cwd(), targetDir)) // 参数2: 创建位置
}

于是当我们选定tsx&&react&&sass会启动下载

(这里失败了,下载git这一部分我还在考虑是否通过下载模板的方式完成)

问题

  • 只是下载git的话我需要脚手架么?即便通过ejs可以修改下载后的模板某些参数,不过这种形式是不是不太好......
  • 怎么保证后续的可维护性啊我去...
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
伪前端工程化之开发构建工具
Angular、vue都有自己的脚手架,方便生成项目模板,而 yeoman 则是专注于generator的构建工具。
上山打老虎了
2022/06/14
2000
伪前端工程化之开发构建工具
手把手教你写一个前端脚手架
脚手架是什么,相信各位已经熟悉得不能再熟悉了,毕竟无论是vue开发者(vue-cli)还是react(create-react-app)开发者,他们都有各自的脚手架,个人虽是用react更多,但不得不说是更喜欢vue-cli的,它的插件机制非常有意思,虽不如webpack的plugin那么方便,但也很强大。不过再讲这强大的功能之前,原谅我先水一篇脚手架的基础。
winty
2024/07/11
3120
手把手教你写一个前端脚手架
从零撸一个CLI命令行脚手架工具
我想大部分同学肯定都是这样回答的:现在社区都有开箱即用的脚手架,像vue-cli、create-react-app这种,我们直接用脚手架来创建项目就可以了啊。
前端森林
2021/02/03
1.1K0
从零撸一个CLI命令行脚手架工具
前端工程化-打造企业通用脚手架
随着前端工程化的概念越来越深入FEer心,前端开发过程的技术选型、代码规范、构建发布等流程的规范化、标准化是需要工具来保驾护航的,而不是每次都对重复工作进行手动复制粘贴。脚手架则可作为工程化的辅助工具,从很大程度上为前端研发提效。
Careteen
2022/02/14
8190
前端工程化-打造企业通用脚手架
中秋节最后一天,手撸一个自己的前端脚手架
“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第3篇文章,点击查看活动详情”
用户6256742
2024/07/31
1090
开源了一个小的前端脚手架(队内分享)
这个是我开源的第二个项目,第一个开源项目是一个 okr 的树形图,目前有 349 个star,地址如下: https://github.com/qq449245884/vue-okr-tree,精力有限,近期维护的比较少,如果有兴趣的小伙伴可以加入一直维护。
前端小智@大迁世界
2022/06/15
5430
开源了一个小的前端脚手架(队内分享)
用 Node.js 开发一个轻量脚手架
本文将介绍如何用 Node.js 开发一个轻量脚手架,以 fixit-cli 为例。
Cell
2023/11/30
2820
前端脚手架开发指南
脚手架本质上是一个工具,使用脚手架的目的就是摆脱构建工程时重复性的工作,尤其是当一个工程具有一定通用性时,工程脚手架的意义就更为突出。它可以让我们只需要一行命令,就可以初始化好一项工程。
牛老师讲GIS
2023/02/27
7180
前端脚手架开发指南
如何开发一个极简的前端脚手架
功能上,要满足登录,权限管理,菜单配置,用户管理,字典管理,角色管理等后台管理系统的常规功能,
虎妞先生
2023/10/16
3920
如何开发一个极简的前端脚手架
yyds,这可能是你第一个自定义的脚手架
哈喽大咖好,我是Johnny,这次给大家重新缕一缕如何用typescript配合周边插件做一个易用的脚手架管理工具。
南山种子外卖跑手
2022/09/09
8740
yyds,这可能是你第一个自定义的脚手架
[第4期] 定制你的 CLI,一键生成项目
工作中, 我们难免会遇到需要自己搭建脚手架的场景, 现成的脚手架有很多, 比如 create-react-app, vue-cli, 能覆盖大部分的需要。但是也要很多不便利的地方, 我们需要自己定制一些配置, 又不想用 rewired or eject, 这个时候就需要自己手动搭建,但是从头搭建又很繁琐, 我自己搭建过几个项目, 每次需要新建的时候就很烦, 那有没有比较便利的方式呢?
皮小蛋
2020/03/02
6460
从0开始搭建优雅的前端脚手架工具
在日常开发中,我们经常会使用到各种脚手架工具(cli): vue-create-app,ng 包括 npm。它们极大简化了开发人员对于项目结构和文件创建的工作,让我们可以把精力专心在业务实现上。 对于某些项目而言 cli还可以封装一些脚本,用来处理项目中的一些特殊场景。
用户8738532
2022/12/05
6450
浅入vue脚手架 手把手教你撸一个简单脚手架
整个vue init大致流程如我上图所示,应该还是比较好理解的。这里我大致阐述一下大致的流程。
饼干_
2022/08/07
1.4K0
浅入vue脚手架 手把手教你撸一个简单脚手架
开发一个简单的脚手架工具
像我们熟悉的 vue-cli,create-react-app 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们生成一个初始项目。在实际工作中,我们可以定制一个属于自己的脚手架,来提高自己的工作效率。
小皮咖
2019/11/15
1.7K0
《前端那些事》从0到1开发简单脚手架
当我要开启一个新项目的开发,可以快速生成新项目的目录模板,而这个目录结构是每个项目统一个模版规范(目录规范),同时也设定了通用的配置包括如下
树酱
2020/10/15
6660
「中高级前端进阶」从零开始手写一个 vue-cli 脚手架
关注我的小伙伴应该知道,我之前写过一篇脚手架相关的文章,在掘金收获了近一千个赞,被前端大全和奇舞周刊公众号转载。
前端达人
2019/09/03
1.8K0
「中高级前端进阶」从零开始手写一个 vue-cli 脚手架
《前端那些事》从0到1开发简单脚手架
上一篇树酱讲《前端工程化那些事》,聊到脚手架,不过时间比较仓促,导致内容较少,而在我实践开发中,随着新项目愈来愈多,脚手架工具就起到提高效能的作用,借此机会跟小伙伴们分享下我是如何从0到1开发一个简单脚手架
树酱
2020/07/03
1.6K0
《前端那些事》从0到1开发简单脚手架
如何实现一个脚手架进阶版(Vue-cli v2.9学习篇)
在之前一篇博客介绍了关于Node脚手架的一些基础的知识,这篇博客是在之前的基础上针对在Node中开发脚手架中遇到的问题,如:
黄Java
2018/09/18
1.2K0
如何实现一个脚手架进阶版(Vue-cli v2.9学习篇)
靓仔快来!!用typescript带你搭建一个自己的脚手架
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情
南山种子外卖跑手
2022/06/12
1.7K0
靓仔快来!!用typescript带你搭建一个自己的脚手架
如何快速开发一个自己的项目脚手架?
随着前端工程化的理念不断深入,越来越多的人选择使用脚手架来从零到一搭建自己的项目。其中大家最熟悉的就是create-react-app和vue-cli,它们可以帮助我们初始化配置、生成项目结构、自动安装依赖,最后我们一行指令即可运行项目开始开发,或者进行项目构建(build)。
桃翁
2020/03/25
3.1K0
如何快速开发一个自己的项目脚手架?
推荐阅读
相关推荐
伪前端工程化之开发构建工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验