用现在很火的 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;