1. 程式人生 > >angularjs 用uglifyJS合併壓縮過程中遇見的坑

angularjs 用uglifyJS合併壓縮過程中遇見的坑

用現在很火的 nodejs 寫了一個壓縮 js 檔案的指令碼。沒有用glup,webpack,而選用的uglifyJS。

不過 一開始就遇到了問題。

沒有壓縮合並前正常執行,可是一壓縮就報錯。

查詢原因 ,結果是angularjs 依賴注入到Controller 中的 變數 $scope,$timeout 什麼的是根據變數名匹配的,

可是壓縮後 這些區域性變數 的名字就變了。所以會報依賴注入錯誤。

 .controller('controller', ['$scope', '$rootScope', '$http', ,
        function ($scope, $rootScope, $http) {
})

後來百度。在 注入的變數 前面加對應的 字串,這樣 即使 $scope 會被壓縮成 E 這樣的變數 ,angular 也可以按照 前面的字串正確的注入$scope等變數。

這才是第一個 坑。後來改用了新版的 uglifyJS 後 就有 好的 使用的JS 包 ,報錯了。

還以為壓縮有問題,後來 百度 報的錯誤 才知道是因為 uglifyJS 在壓縮檔案的開頭 加了“use strick”。

可能是 有些包不支援 所以才報錯

刪除壓縮檔案中 的 “use strick”

一切OK;