我正在使用Angular,如你所知,有Angular“1”(旧版本)和Angular 2(最新版本),包括打字稿。
这是我今天遇到的问题: 我正在使用angular做一个应用程序,所以我创建了项目文件夹(项目前端)并在本地安装了grunt,用bower我已经下载了包的角度。
我已经创建了gruntfile.js并使用以下任务对其进行了配置:
"grunt-contrib-concat": "^1.0.1"
"grunt-ng-annotate": "^2.0.2"
"grunt-contrib-uglify": "^2.0.2"
还有许多其他人,比如cssmin,htmlmin等,但问题出现在这些任务中,或者恰恰与uglify有关。
问题是,如果我连接所有角度js文件(angular.js,angular-rout.js,angular-resource.js ...)并且我丑化了所有内容,那么,当我在Tomcat中部署我的战争时,我收到这个错误:
TypeError:b未定义
所以,我认为导致问题的是uglify,因为我试图为另一个旧项目运行相同的任务,这个项目有uglify 1.0.1并且一切正常,我也控制了如果我只是运行concat和ngAnnotate,最终的角度文件(来自这个项目的那个,以及来自最后一个的文件)实际上是相同的。
我不知道这是否必须对打字稿做一些事情(看到我想到的错误),因为我认为打字稿已经插入角度自2.0.0版本以来,我正在使用1.5 .8版本(我也试过1.2.9)。
我使用jshint控制我的应用程序代码(这是我运行的第一个任务)并且终端中没有提示错误。
我还尝试重新配置任务,例如旧项目Gruntfile.js文件。
我不知道该怎么做了,我已经遇到了这个问题,我不知道如何进一步提出一些建议?
答案 0 :(得分:1)
好的,现在我发现了错误,正如我在我的问题评论中写的那样,我想出了像这样连接js文件:
src: 'bower_components/**/*.js'
哪个应该连接我的bower_components目录中的文件夹和子文件夹中的所有js文件,只是不知道为什么会打破角度最终文件,如果我写的话
src: ['bower_components/angular/*.js',
'bower_components/angular-route/*.js',
'bower_components/angular-resource/*.js']
哪个直接指向需要连接的所有文件,一切都在我的应用程序中使用角连接和uglified文件
我不知道为什么会出现这个问题,如果我在我的project-frontend文件夹下打印此命令,请注意:
echo bower_components/**/*.js
我可以看到这个输出:
bower_components/angular/angular.js bower_components/angular-resource/angular-resource.js bower_components/angular-route/angular-route.js
顺便说一下,这似乎是解决这类问题的方法,我希望这有助于将来的某个人