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;

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页