在專案中經常用到moment
庫,有沒有發現引入moment之後,專案build完的檔案大小明顯大了不少,下面就來分析一下原因, 以及如何做優化。
首先看下**結構
new webpack.ignoreplugin(/^./locale$/, /moment$/) // 配置忽略規則
]原理:在webpack編譯階段, 如果引入的檔案路徑匹配/^./locale$/
,則會忽略這個檔案, 也就不會被打包進去。
在新增webpack.ignoreplugin之後, 檔案大小是減小了, 但是在設定moment.locale('zh-cn')
之後, format之後的日期仍然是英文的,語言沒有切換過來。
功能缺失肯定是不能接受的, 怎麼辦?怎麼辦?
在moment文件上也提供了解決方案,moment-locales-webpack-plugin
new momentlocalesplugin()
moment預設locale是en
,它必然會被打包進去, 如果需要配置其他語言,可以通過localestokeep
來配置, 其他沒用到的語言包也就不會被打包進去了。
如果沒有配置option, 用ignoreplugin忽略所有語言包(en
除外)
如果設定option, 用 contextreplacementplugin外掛程式設定webpack在編譯階段的查詢規則,即查詢指定的locale。
...
if (localestokeep.length > 0) );
return new contextreplacementplugin(
/moment[/]locale/,
new regexp('(' + regexppatterns.join('|') + ')$') // 配置webpack編譯階段的查詢規則, 即指定語言包
);} else
...
到此結束。
水平有限,文中有錯誤之處,還望大佬指正。
webpack不打包特定的檔案
使用vue webpack建立專案的時候會自動生成乙個static資料夾,在static資料夾裡面我們可以放一些會經常變化的檔案或者 啥的,但是用的時候需要寫上絕對路徑。由於專案需要,在開發時的介面位址跟部署的介面位址不一致,所以我們要弄成可配置的,即單獨出來乙個js檔案放我們的介面位址,然後希望該...
關於Python打包檔案的步驟
打包檔案 1 首先找到安裝python檔案路徑python3.9 lib site packages 開始輸入cmd,進入目標路徑。2 打包命令如下 使用 pip install pyinstaller。3 安裝好之後,進入需要打包檔案的檔案,使用cmd,進入pycharm2020 pythonst...
關於pyinstaller資料檔案的打包
使用pyinstaller進行打包程式,執行程式時發現,放置於程式目錄的檔案無法載入 相對路徑方式訪問 經過一番測試,發現執行程式時,程式執行的當前目錄不一定是程式檔案所在的目錄。而使用 add data與 add binary打包的檔案,發現存放於系統的臨時目錄。經過一番搜尋,終於找到了獲取資料臨...