用NODE写一个脚手架东西

起首抛出一个题目,人人在运用webpack,webpack-dev-server,babel-cli,vue-cli,npm这类东西的时刻有无思考过一个题目?为何我全局装置这个模块以后,就能在shell中运用webpack,babel这些敕令?

解答:之所以能运用webpack这些敕令,意味着我在npm install webpack -g时,有个可实行文件增加到了我的环境变量中,如下图:

《用NODE写一个脚手架东西》

因而我在shell中敲击webpack敕令,体系就会在环境变量中查找webpack,然后实行link file指向的webpack bin目次下的webpack.js 文件。接着就能够顺遂的实行webpack相干的功用,编译打包静态文件……..

那末让我们最先用node写一个CLI东西!!!

第一步:起首要学会宣布一个npm包

  • 很简单,到npmjs注册一个账号,注册好以后,到你的项面前目今

  • 实行 npm login,按提醒操纵即可

  • 接着 npm publish,进入你想要宣布的包下,实行该敕令即可

  • 不出不测,就胜利宣布了一个npm包

第二步:那末怎样全局装置这个包的时刻,将可实行文件注册到环境变量?

重点就是,package.json,bin设置能够将开发者愿望实行的剧本注册到环境变量,顺便把我的脚手架的项目构造po出来,源码: https://github.com/zhentaoo/p…
《用NODE写一个脚手架东西》

在实行 npm install -g poke-ball以后,就能在环境变量中找到link file kk
如图:
《用NODE写一个脚手架东西》
此时当我在shell中敲击kk的时刻,就会实行对应的kk文件,因而就有了接下来的一系列操纵.

第三步:须要注重的题目

在写脚手架东西中,轻易杂沓的一个题目就是途径,由于操纵文件的过程当中,你能够须要把CLI中的模版文件复制到当前项目中。因而就涌现了2个途径
分别是

  • process.cwd() 当前工作目次,也就是你确当前项目标途径。

  • __dirname 是实行的源文件的地点途径,也就是bin文件地点的path,也就是脚手架中的源文件途径。

第四步:优化的点

  1. seed如果和CLI集成在一起,如果seed须要晋级,那末CLI也不能不晋级,一切运用方都不能不重新装置CLI。能够把二者拆开。

  2. CLI在new一个seed的时刻,运用 git clone,但如果seed版本过量,seed的git堆栈必将很大.运用git clone –depth 1,只clone最新版本会是个不错的计划.以后在rm -rf .git

    原文作者:青菜恭弘=叶 恭弘子
    原文地址: https://segmentfault.com/a/1190000009135530
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞