我正在创建一个Web应用程序,我在其中使用Maven,Spring,Hibernate,Angular。 war文件的大小如果非常大(151 MB),其中107 MB用于节点模块,请告诉我如何从war文件中删除不必要的节点模块以保持其大小合理。 这是我的npm依赖项:
"dependencies": {
"@angular/common": "~2.4.0",
"@angular/compiler": "~2.4.0",
"@angular/core": "~2.4.0",
"@angular/forms": "~2.4.0",
"@angular/http": "~2.4.0",
"@angular/platform-browser": "~2.4.0",
"@angular/platform-browser-dynamic": "~2.4.0",
"@angular/router": "~3.4.0",
"angular-in-memory-web-api": "~0.2.4",
"angular2-datatable": "^0.6.0",
"core-js": "^2.4.1",
"lodash": "^4.17.4",
"mydatepicker": "^1.6.1",
"ng2-pdf-viewer": "^1.1.0",
"rxjs": "5.0.1",
"systemjs": "0.19.40",
"zone.js": "^0.7.4",
"ng2-auto-complete": "^0.10.9"
}
答案 0 :(得分:0)
我不知道你的目录结构是怎样的,但一般来说它应该可以通过添加这样的东西来实现你的.pom:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<packagingExcludes>node_modules/**</packagingExcludes>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
除了node_modules / **,您还可以排除src / **。我检查.war文件,看看是否还有其他目录/文件也可以排除。
如果您的Angular应用程序打包在.war中包含的单独的.jar中,这看起来略有不同,例如:
<build>
<resources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<excludes>
<exclude>node_modules/**</exclude>
<exclude>src/**</exclude>
</excludes>
</resource>
</resources>
</build>