自定义搭建前端脚手架

这次给大家带来自定义搭建前端脚手架,自定义搭建前端脚手架的注意事项有哪些,下面就是实战案例,一起来看一下。

做新的项目时,每次复制文件夹,然后修改package.json、README.md等,感觉很不“优雅”,想使用类似vue-cli,使用vue init的方式在github下载我自己的前端工程,这样显得很“优雅”。如果您觉得还不错,请star >>>  x-build-cli。

初始化项目结构

首先你已经有了自己搭建的前端工程,假设起名为x-build,并且已经上传到github。

此时新建一个新的项目,起名为x-build-cli,我是参考vue的做法,这样即使x-build更新,x-build-cli不更新,也可以拉取到最新的x-build。

mkdir x-build-clicd x-build-clinpm init

登录后复制

创建名为x-build-cli的文件夹,使用npm初始化,在文件夹内创建bin目录,并创建x-build.js,此时的项目结构:

x-build-cli  |-  bin  |     |- x-build.js  |-  package.json

登录后复制

配置package.json

"bin": {  "x-build": "./bin/x-build.js"}

登录后复制

在package.json增加”bin”,”x-build”就是命令号要输入的指令,”./bin/x-build.js”是命令执行时的文件。

配置x-build.js

#! /usr/bin/env nodeconst program = require('commander');const download = require('download-git-repo');const chalk = require('chalk');const ora = require('ora');

登录后复制

#! /usr/bin/env node是指定这个文件使用node执行。

需要安装的模块npm i commander download-git-repo chalk ora –save:

commander可以解析用户输入的命令。

download-git-repo拉取github上的文件。

chalk改变输出文字的颜色

ora小图标(loading、succeed、warn等)

program  .version('0.1.0')  .option('-i, init [name]', '初始化x-build项目')  .parse(process.argv);

登录后复制

.option()

-i 是简写,类似于npm i -g

init后面的[name]可以通过program.init来获取到。

最后一项是描述,一般会在x-build -h提示

if (program.init) {  const spinner = ora('正在从github下载x-build').start();  download('codexu/x-build#x-build4.1', program.init, function (err) {    if(!err){      // 可以输出一些项目成功的信息      console.info(chalk.blueBright('下载成功'));    }else{      // 可以输出一些项目失败的信息    }  })}

登录后复制

ora().start()可以创建一个loading小图标。 >>> 其他图标参考ora

download()从github下载我们需要的项目,因为使用的是分支所以在后面加上了#x-build4.1,默认是master。 参数配置参考download-git-repo

chalk.blueBright()会将输出的文字转化为蓝色。 >>> 其他颜色参考chalk

上传npm

没有账号的同学去npm注册一个账号。

// 登录账号npm login// 上传项目npm publish

登录后复制

上传成功之后,通过npm install x-build-cli -g安装到全局环境中。

使用build init [项目名]就可以从github拉取相应的文件。

优化

此时下载的文件与github一致,我想改变package.json,将name改为初始化的项目名,将version改为1.0.0。

此时就使用node自己的api就可以做到:

const fs = require('fs');fs.readFile(`${process.cwd()}/${program.init}/package.json`, (err, data) => {  if (err) throw err;  let _data = JSON.parse(data.toString())  _data.name = program.init  _data.version = '1.0.0'  let str = JSON.stringify(_data, null, 4);  fs.writeFile(`${process.cwd()}/${program.init}/package.json`, str, function (err) {    if (err) throw err;  })});

登录后复制

通过readFile读取文件,writeFile写入文件,写入时注意要传入字符串JSON.stringify(_data, null, 4),通过这样的方式可以输出格式化的json文件。

通过node可以很轻松的就做到,这里发展空间很大,就不再多说。

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Component与PureComponent使用区别详解

css常用样式总结

以上就是自定义搭建前端脚手架的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2757852.html

(0)
上一篇 2025年3月8日 08:02:20
下一篇 2025年2月19日 12:43:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • CSS自定义设置元素闪烁光标颜色

    这次给大家带来CSS自定义设置元素闪烁光标颜色,CSS自定义设置元素闪烁光标颜色的注意事项有哪些,下面就是实战案例,一起来看一下。 前言 因为业务需求, 要求我们的input框内的文本与悬浮的光标颜色不同, 这样的问题肯定在书本上很难找到解…

    编程技术 2025年3月8日
    200
  • 如何开发一个自定义库

    这次给大家带来如何开发一个自定义库,开发一个自定义库的注意事项有哪些,下面就是实战案例,一起来看一下。 当然这个库还处在刚刚开始阶段,功能实现的比较简单,在此发表出来,欢迎大家借此为基础一起去完善它。项目地址:Hoz.js,欢迎大家star…

    编程技术 2025年3月8日
    200
  • 如何用vue写一个自定义组件

    这次给大家带来如何用vue写一个自定义组件,用vue写一个自定义组件的注意事项有哪些,下面就是实战案例,一起来看一下。 写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目。如果还不知道怎么用web…

    编程技术 2025年3月8日
    200
  • 怎样对vue脚手架及vue-router进行使用

    这次给大家带来怎样对vue脚手架及vue-router进行使用,对vue脚手架及vue-router进行使用的注意事项有哪些,下面就是实战案例,一起来看一下。 首先在大前提vue-cli已经安装好的情况下,并且cnpm install后(官…

    2025年3月8日 编程技术
    200
  • 怎样搭建vue2.0+boostrap项目

    这次给大家带来怎样搭建vue2.0+boostrap项目,搭建vue2.0+boostrap项目的注意事项有哪些,下面就是实战案例,一起来看一下。 一、Vue CLI初始化Vue项目 全局安装vue cli npm install &#82…

    2025年3月8日
    200
  • 怎样利用Vue自定义动态组件

    这次给大家带来怎样利用Vue自定义动态组件,利用Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下。 现在基于vue的UI组件库有很多,比如iview,element-ui等。但有时候这些组件库满足不了我们的开发需求,这时…

    2025年3月8日 编程技术
    200
  • Vue自定义过滤器格式化数字三位加一逗号实现代码

    这篇文章主要介绍了vue自定义过滤器格式化数字三位加一逗号的实现代码,需要的朋友可以参考下 前端处理一些金额,数字类的数据要求按照固定的格式显示,比如9,527,025,或者带有小数(如1,587.23)仍要三位一断。有些话也不必多说,既然…

    2025年3月8日
    200
  • 基于vue-video-player自定义播放器的方法

    这篇文章主要介绍了基于vue-video-player自定义播放器的方法,主要是基于video.js开发的vue-video-player的使用,以及如何操作video.js中的api。需要的朋友可以参考下 先看一下效果。 图1&#8211…

    2025年3月8日 编程技术
    200
  • 怎样使用vue-cli快速搭建项目

    这次给大家带来怎样使用vue-cli快速搭建项目,使用vue-cli快速搭建项目的注意事项有哪些,下面就是实战案例,一起来看一下。 1. 避坑前言 其实这次使用vue-cli的过程并不顺利,反复尝试几次都遇到以下这个报错: 创建vue-cl…

    2025年3月8日 编程技术
    200
  • Vue 自定义动态组件实例详解

    vue的ui组件库很多种,但是这么多的组件库也不能满足我们的开发需求,所以需要我们根据自己需求自己写一个插件,下文我通过两个栗子给大家介绍js自定义组件的方法,感兴趣的朋友一起看看吧 现在基于vue的UI组件库有很多,比如iview,ele…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论