[發明專利]一種JS代碼的裁剪方法、裝置、介質和電子設備有效
| 申請號: | 202010006693.0 | 申請日: | 2020-01-03 |
| 公開(公告)號: | CN111240684B | 公開(公告)日: | 2023-04-11 |
| 發明(設計)人: | 鄔亮;趙汝軍 | 申請(專利權)人: | 北京字節跳動網絡技術有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41;G06F9/445 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 馬瑞 |
| 地址: | 100041 北京市石景山區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 js 代碼 裁剪 方法 裝置 介質 電子設備 | ||
本發明提供了一種JS代碼的裁剪方法、裝置、介質和電子設備,其中,JS代碼的裁剪方法包括:在打包器的加載器中調用自定義轉換函數;在自定義轉換函數中解析文件的抽象語法樹,得到用于對JS代碼進行裁剪的裁剪依賴信息,并調用定制化轉換函數;在定制化轉換函數中根據裁剪依賴信息和第一裁剪目標對JS代碼的抽象語法樹進行轉換,得到符合第一裁剪目標的第一裁剪后JS代碼。本發明通過在定制化轉換函數中根據裁剪依賴信息和裁剪目標對JS代碼的抽象語法樹進行轉換,得到裁剪后JS代碼,該裁剪后的JS代碼能夠符合當前用戶的裁剪需求,從而實現了定制化裁剪JS代碼。
技術領域
本發明涉及計算機技術領域,具體而言,涉及一種JS代碼的裁剪方法、裝置、介質和電子設備。
背景技術
JavaScript是一種解釋型的腳步語言,主要用于網頁應用編程。實現一個網頁應用的代碼通常由HTML(Hyper?Text?Mark-up?Language,超文本標記語言)、CSS(CascadingStyle?Sheets,層疊樣式表)和JS三部分組成。HTML代碼實現網頁的結構,CSS代碼實現網頁樣式,JS代碼實現網頁的交互。用戶訪問一個網頁時,瀏覽器會先請求對應的資源,比如JS代碼,然后解析資源并呈現給用戶。如果請求資源越大,請求時間就越長,用戶看到白屏的時間就會比較長,用戶體驗就會比較差。因此,在JS的開發中,開發者需要采用各種技術來減少JS代碼的體積,比如代碼混淆、代碼壓縮和代碼裁剪等。
在現代的JS開發中,一般會采用Webpack對代碼進行打包處理。Webpack提供了一種搖樹功能,用來移除未被引用的JS代碼,即死代碼。但這個功能生效有一個前提,必須使用ES2015模塊語法,使用其他模塊語法的代碼,比如Commonjs,無法使用搖樹功能。
在一個規范的開發流程中,開發的代碼需要依次運行在開發環境、測試環境和生產環境中。不同的運行環境對代碼的要求是不一樣的。在開發環境中,為了便于開發,會包含一些接口模擬或類型檢測代碼。在測試環境中,為了便于定位問題,會包含一些調試和詳細的日志打印代碼。而在生產環境中,為了盡可能地減少代碼體積,應該只包含業務功能代碼,其他的輔助性代碼,比如調試代碼,都應該去掉。
為了滿足不同運行環境對代碼的不同要求,可以為每個運行環境均編寫對應的一套代碼,但這種處理方法,不僅編寫效率低,還浪費了大量的人力和物力,提高了開發成本。
因此,在長期的研發當中,發明人對現有不同運行環境下的JS代碼的處理方法進行了大量的研究,提出了一種JS代碼裁剪方法,以解決上述技術問題之一。
發明內容
本發明的目的在于提供一種JS代碼的裁剪方法、裝置、介質和電子設備,能夠解決上述提到的至少一個技術問題。具體方案如下:
根據本發明的具體實施方式,第一方面,本發明提供一種JS代碼的裁剪方法,包括:
在打包器的加載器中調用自定義轉換函數;
在所述自定義轉換函數中解析文件的抽象語法樹,得到用于對JS代碼進行裁剪的裁剪依賴信息,并調用定制化轉換函數;
在所述定制化轉換函數中根據所述裁剪依賴信息和第一裁剪目標對所述JS代碼的所述抽象語法樹進行轉換,得到符合所述第一裁剪目標的第一裁剪后JS代碼。
根據本發明的具體實施方式,第二方面,本發明提供一種JS代碼的裁剪裝置,包括:
自定義轉換函數調用單元,用于在打包器的加載器中調用自定義轉換函數;
解析單元,用于在所述自定義轉換函數調用單元調用的所述自定義轉換函數中解析文件的抽象語法樹,得到用于對JS代碼進行裁剪的裁剪依賴信息;
定制化轉換函數調用單元,用于調用定制化轉換函數;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京字節跳動網絡技術有限公司,未經北京字節跳動網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010006693.0/2.html,轉載請聲明來源鉆瓜專利網。





