大部分前端選手,也包括我本身,常常都是vue-cli,或者create-react-app一把梭。不得不認可這些著名的腳手架寫的確實好,可以給咱們作項目提速。可是長此以往很容易進入本身的溫馨區,最近不是很流行「跳出溫馨區」嗎?並且各大培訓機構都作販賣焦慮,就爲了可讓更多的人能夠去買課。css
這裏我就不販賣焦慮了。你們有本身的選擇,只要本身不後悔就好。前端
雖然vue-cli等腳手架已經佈置好了不少東西,包括router,css的解析等等。vue
可是!node
可是啊,可是這些腳手架並不知道咱們公司的或者說咱們我的項目的網絡請求,並且網絡請求內部怎麼封裝的也沒有統一的處理。也不知道咱們的一些通用的登錄頁等等。這些都須要咱們從新的CV一下,或者本身從新作。react
咱們作腳手架有如下幾個緣由webpack
用於node.js命令行界面的完整解決方案。基本上是前端腳手架必備的。git
這裏只介紹github
簡單使用,畢竟只是入門,後續一些複雜的定製化的就須要你們本身去探索了。web
好了,收!面試
怎麼用?
const { program } = require('commander')
program
.version(`react-cli-mobile ${packages.version}`)
.command('create <name>')
.description('初始化模板')
.action((projectName, cmd) => {
const options = cleanArgs(cmd)
creator(projectName, options)
})
複製代碼
fs-extra模塊是系統fs模塊的擴展,提供了更多便利的 API,並繼承了fs模塊的 API
這裏只介紹
existsSync
copy用於複製。網上的一些腳手架教程用的是[download-git-repo]庫。我發現這個只能下載某個倉庫的文件,這樣的話會致使個人項目會有兩個。一個用於腳手架的代碼,另外一個是template的倉庫。這樣我以爲不太適合我,由於我不是很想找腳手架上面下太多的功夫搞交互,我只是想能夠更方便更快的新建個人項目,並且我也不想弄兩個倉庫,我以爲有點多餘。
固然了,這隻表明個人我的想法,你們能夠自行選擇。
怎麼用?
const fs = require('fs-extra')
if(fs.existsSync(targetDir)) {
console.error('目錄已經存在')
return
}
// 複製模板文件
await fs.copy(src, dest)
複製代碼
很簡單,字面意思,主要是用於配合【fs-extra】這個庫來使用的,主要仍是給copy提供路徑,就很少介紹了
怎麼用?
const path = require('path')
const src = path.resolve(__dirname, dir);
const dest = path.resolve(process.cwd(), projectName);
// 複製模板文件
await fs.copy(src, dest)
複製代碼
ok,至此差很少咱們的一個腳手架就能夠出來了,其餘的一些log顏色,路徑判斷,單詞差別優化都不在本次介紹的範圍內,本文主要是完成一個腳手架,而後重頭戲仍是本身的template。
代碼的話這裏就不貼了
你們能夠直接到 react-cli-mobile上面看,裏面有一些更加細微的操做。
原本本身從webpack配置開始,從零搭建一個由
你們能夠
或者直接查看源碼
你們能夠直接到 react-cli-mobile上面看
哪裏寫錯了,或者寫的很差,或者有不懂的歡迎你們在評論區交流
後續會繼續推出從零配置移動端的webpack等配置的文章!歡迎你們關注點贊!謝謝!