fbpx
HTMLJavascript初學程式程式新手網頁前端

Webpack教學 (三):永不停止的Watch

當我們已經學會用webpack做初步的編譯跟打包後,你會想說,難道每次我次改檔案就要在執行 npm run build 重新編譯(不知道的可以看這),這樣在開發上面不會很麻煩嗎? 其實如果用webpack編譯 js 檔案的話,有個執行的命令叫watch,可以幫助我們監控我們的js,只要今天js檔案有變動就會直接自動幫我們執行編譯,我們可以來看看。 我們要在package.json 中加上 watch 指令,首先我們要新增一個npm script “watch”: “webpack --watch” https://gist.github.com/MikeCheng1208/b8a608bf733023746a4256b8f9439c0c#file-package-json 這樣接下來我們除了 build 以外也多了一個watch的指令,接下來就執行 > npm run watch 你會發現webpack雖然編譯了,但是執行緒卻沒有中斷,因為webpack現在是watch的狀態,只要你修改一下你的 js 檔案webpack就會自動重新編譯。…
學程式助教
November 26, 2019
HTMLJavascript初學程式程式新手網頁前端

Webpack教學 (二) :檔案你要去哪裡?

上一篇我們在介紹webpack是什麼東西(沒看過趕快去看XD),接下來我們來談談細節的配置,我們已經可以做基本的輸出了,上篇教學説我們會分兩個資料夾src跟dist,src是指我們的開發檔案,輸出到dist是編譯過後的檔案,但是要怎麼指定src跟dist輸出的路徑呢?首先你要了解webpack是建立在nodejs上面的工具,webpack只負責編譯,搬檔案就要靠nodejs的api來幫忙啦!nodejs 要搬移任何的檔案都要靠一個叫path的api來做(文件在此)所以我們來看,首先要在webpack.config.js 用 require 的方式來引入path的模組。var path = require(‘path’);然後在module.exports裡一開始加入 context這個屬性,裡面使用path.resolve 這個方法來指定一開始的路徑context: path.resolve(__dirname, ‘src’),__dirname在nodejs裡面代表的一個特殊的變數,只的是當前執行文件所在目錄的完整目錄位置,所以我們要設定path.resolve第一個參數__dirname,然後指定第二個參數,從src資料夾開始找檔案。好啦!開始創一個src資料夾跟把我們要編譯的js放到src資料夾裡面這是目前的webpack.config.js設定(此區塊有程式碼無法顯示,文末有連結可回到原文查看!)好啦!實際跑跑看,開終端機跑> npm run build記得你的package.json 的script ,如果不知道請參考上一篇文章  編譯過程  它會自動幫你放入dist資料夾內(預設)但是今天你想要輸出不是在dist資料夾內呢?有些時候我們跟後端配合專案會需要把檔案自動給放到其他資料夾內,而不是dist,那要怎麼做?這時候我們可以在 output 設定裡面重新指定路徑,像這樣(此區塊有程式碼無法顯示,文末有連結可回到原文查看!)在output裡面可以用一個path的屬性,在使用 path.resolvepath: path.resolve(__dirname, ‘App’),重新執行> npm…
學程式助教
November 26, 2019
HTMLJavascript初學程式程式新手網頁前端

Webpack教學 (一) :什麼是Webpack? 能吃嗎?

曾幾何時Web前端界寫的不再是單純html、css、js,許多Preprocess(前處理)工具跟框架不斷的冒出來,不斷拉高前端門檻,導致出現了許多斷層,可能你聽過 es6、pug、sass、vue、reactjs (沒聽過的可以參考之前我寫的另外一篇文章 - 在開始寫Code之前?) ,這些東西可以說是現在前端界必須要了解的,可是問題來了!? 即使寫了這些Preprocess,但是瀏覽器還是無法識別,看不懂啊,所以也出現了許多前端自動化的工具出來,編譯這些Preprocess然後打包成瀏覽器看得懂的內容,例如我們等一下會仔細提到的webpack、或是不太會提到的gulp、Parcel等……或許你打開104或是其他找工作的平台都會寫說需要有webpack打包的使用經驗或是其他第三方的自動化工具使用經驗,但是到底什麼是webpack? 到底webpack可以幫我們做什麼事情?  擷取104隨便搜尋前端工程師職缺截圖某部分其實webpack幫我們做的事情很簡單,就是幫我們編譯我們的Preprocess成瀏覽器看得懂的內容然後打包成一包的完成檔案然後拿去server 上傳上去。 專案結構一般我們的專案會有兩個很重要的資料夾src與dist,這兩個資料夾是什麼?src : 專門放我們Preprocess的檔案,包括es6、pug、sass、vue、jsx等檔案,這個資料夾不會丟上去server部署。dist : 經過webpack編譯打包後,產生出瀏覽器看得懂的html、css、js,要部署也是這個資料夾去部署。  這是我某專案的資料夾結構會看到src的資料夾裡面有許多資料夾,這個是我自己的分類方式,每個人的都多少會不一樣,僅供參考啦~像這樣的開發方式就像是現代前端的開發方式,我們就可以專心的用去多好用的Preprocess,不用去管最後的編譯成果!前面說了這麼多觀念,接下來我們來說些比較入門偏技術的部分~ (more…)
學程式助教
November 26, 2019