如何重现期望node_modules与webjars一起提供的应用程序的行为

时间:2016-08-11 08:44:35

标签: webjars

前端开发人员将运行npm install以生成node_modules目录,然后使用简单的HTTP服务器为其项目的根目录服务。这允许他引用以node_modules/...开头的URL中的任何资产。

我正在寻找一个解决方案,我可以在servlet 3容器中提供应用程序静态,以在类路径中放置的NPM webjars的形式部署所有前端依赖项。

我的问题是,无法解析以node_modules开头的网址,因为WebJars资产会在webjars下公开。是否有任何建议的方法来保持启动node_moules的URL有效?

我只想写一个servlet过滤器,将node_modules重定向到webjars。你觉得怎么样?

1 个答案:

答案 0 :(得分:0)

由于polygon,我最终创建了一个class来检测所有可用的// some demo polygon + line Polygon polygon = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(1,1), new Coordinate(6,1), new Coordinate(6,6), new Coordinate(1,6), new Coordinate(1,1)}); LineString line = new GeometryFactory().createLineString(new Coordinate[]{new Coordinate(0, 0), new Coordinate(5,5), new Coordinate(10,5)}); // check for intersection in the first place if(line.intersects(polygon)){ System.out.println("line intersects polygon!"); // iterate over all segments of the linestring and check for intersections for(int i = 1; i < line.getNumPoints(); i++){ // create line for current segment LineString currentSegment = new GeometryFactory().createLineString(new Coordinate[]{line.getCoordinates()[i-1], line.getCoordinates()[i]}); // check if line is intersecting with ring if(currentSegment.intersects(polygon)){ // segment is entering the ring if startpoint is outside the ring if(!polygon.contains(currentSegment.getStartPoint())){ System.out.println("This segment is entering the polygon -> "); System.out.println(currentSegment.toText()); // startpoint is inside the ring } if (polygon.contains(currentSegment.getStartPoint())) { System.out.println("This segment is exiting the polygon -> "); System.out.println(currentSegment.toText()); } } } } else { System.out.println("line is not intersecting the polygon!"); } ,并为每个资产计算相应的WebJars网址。该类负责处理任何WebJarAssetLocator中可用的任何现有node_modules,以将模块名称添加到已翻译的URL而不是工件ID。 然后,可以使用网址映射package.json编写filter,以将请求重定向到相应的WebJar网址。