【发布时间】:2015-02-27 12:26:17
【问题描述】:
我正在尝试使用 samaxes minify maven plugin 在我的 angularjs 应用程序中缩小 javascripts 和 css 文件。我能够缩小所有 js 和 css 并使用 maven 构建一个 war 文件,但是在尝试打开应用程序 url 时我得到 Error: [$injector:unpr] Unknown provider: aProvider <- a 并且我的应用程序无法运行。
下面我提供我的 pom 插件配置
<plugin>
<groupId>com.samaxes.maven</groupId>
<artifactId>minify-maven-plugin</artifactId>
<version>1.7.4</version>
<executions>
<execution>
<id>min-js</id>
<phase>prepare-package</phase>
<goals>
<goal>minify</goal>
</goals>
</execution>
</executions>
<configuration>
<charset>UTF-8</charset>
<skipMerge>true</skipMerge>
<cssSourceDir>myapp/styles</cssSourceDir>
<jsSourceDir>myapp/javascript</jsSourceDir>
<jsEngine>CLOSURE</jsEngine>
<closureLanguage>ECMASCRIPT5</closureLanguage>
<closureAngularPass>true</closureAngularPass>
<nosuffix>true</nosuffix>
<webappTargetDir>${project.build.directory}/minify</webappTargetDir>
<cssSourceIncludes>
<cssSourceInclude>**/*.css</cssSourceInclude>
</cssSourceIncludes>
<cssSourceExcludes>
<cssSourceExclude>**/*.min.css</cssSourceExclude>
</cssSourceExcludes>
<jsSourceIncludes>
<jsSourceInclude>**/*.js</jsSourceInclude>
</jsSourceIncludes>
<jsSourceExcludes>
<jsSourceExclude>**/*.min.js</jsSourceExclude>
</jsSourceExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webResources>
<resource>
<directory>${project.build.directory}/minify</directory>
</resource>
</webResources>
</configuration>
</plugin>
目录结构
我的控制器结构
'use strict';
angular.module('myApp').controller('MyController', function($scope, $filter, $location, $interval, ngTableParams, $modal, $transition, myService, $timeout) {
...
});
Chrome 控制台错误
samaxes minify maven plugin 是否支持缩小 angularjs 应用程序,还是我需要使用任何其他替代方案?
请帮助我在我的 angularjs 应用程序中缩小 js 和 css。
【问题讨论】:
-
使用 maven 构建前端而不是 grunt?我喜欢你的风格,你这个疯子
-
@atmd:我是 angularjs 新手,对 grunt 了解不多。我们一直在使用 maven 为我们的服务器代码创建构建,并且这个应用程序还使用了 java rest 端点,它被封装在
WEB-INF>lib>[jar files]中。我只经历了this article 直到Why Should I Use Grunt?部分,我只需要缩小 js 和 css,所以我认为此时我不应该仅仅为了缩小东西而使用 grunt。如果您仍然认为我需要使用 grunt,请纠正我。 -
不,你走的是可以理解的路线。如果您在后端使用 maven,那么在前端使用它是一个很好的论据。 grunt 的论点通常是使用使用您的软件编写的语言编写的构建工具(即 grunt 脚本是用 js 编写的) Grunt 具有更专注于前端(预编译器、压缩器等)的插件,例如angular focused minifyer。据我所知,你必须把它挂在某个地方的罐子上(比如 YUI 的东西)
标签: javascript angularjs maven yui-compressor