前端开发人员将运行npm install
以生成node_modules
目录,然后使用简单的HTTP服务器为其项目的根目录服务。这允许他引用以node_modules/...
开头的URL中的任何资产。
我正在寻找一个解决方案,我可以在servlet 3容器中提供应用程序静态,以在类路径中放置的NPM webjars的形式部署所有前端依赖项。
我的问题是,无法解析以node_modules
开头的网址,因为WebJars资产会在webjars
下公开。是否有任何建议的方法来保持启动node_moules的URL有效?
我只想写一个servlet过滤器,将node_modules
重定向到webjars
。你觉得怎么样?
答案 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网址。