1. 程式人生 > >ABAP system landscape和vue專案webpack構建的最佳實踐

ABAP system landscape和vue專案webpack構建的最佳實踐

基於Netweaver的ABAP transport route一般都有dev,test和prod三種類型的系統。

而Vue前端專案的webpack build設定也類似。

SAP成都研究院數字創新空間開發的智慧服務前端實現為例, 在package.json裡定義了名為dev和build兩個script:

"scripts": {

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",

"start": "npm run dev",

"build": "node build/build.js"

}

一旦執行npm run dev,會觀察到在dev環境下使用了webpack-dev-server這個依賴啟動了web伺服器

當然webpack-dev-server這個依賴也必須定義在package.json的dependencies區域裡:

npm install把所有依賴下載到本地後,也能觀察到webpack-dev-server.js這個依賴的實現:

執行命令列npm run dev, 實際上執行的命令列為:

node "C:Usersi042416Documents_DISCodeSmartServiceFront ode_modules.bin..webpack-dev-serverinwebpack-dev-server.js" --inline --progress --config build/webpack.dev.conf.js

我們在前端專案build資料夾裡能看到三個和webpack相關的配置檔案:

  • webpack.base.conf.js

  • webpack.dev.conf.js

  • webpack.prod.conf.js

這裡也能看到dev和prod環境,類似ABAP的開發和生產系統。區別是vue webpack的dev環境包含的是未壓縮過的程式碼,方便除錯,而prod環境的程式碼是壓縮過後的。而ABAP無論是開發,測試還是生產,程式碼都相同。

之所以要引入webpack.base.conf.js, 也是類似面向物件的程式設計思想,把dev和prod環境一些通用的webpack配置抽取出來,避免在dev和prod裡重複定義。

最終dev和prod的webpack配置內容,是webpack.base.conf裡的通用內容,加上各自專屬檔案裡定義的配置內容的並集, 參考第14行的merge方法,由webpack-merge模組提供。

當然如果大家還不瞭解什麼是Webpack,可以參考這篇簡書文章,來自zhangwang,寫得相當詳細。

入門Webpack,看這篇就夠了

WebPack可以看做是模組打包機:它做的事情是,分析你的專案結構,找到JavaScript模組以及其它的一些瀏覽器不能直接執行的拓展語言(Scss,TypeScript等),並將其轉換和打包為合適的格式供瀏覽器使用。

要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":