我们为我们的项目使用npm,bower等神器。现在我们想使用新功能TypeScript类型定义通过artifactory获取npm包作为@ types / jasmine(NPM组织/范围),但是当我们尝试访问它时,我们得到http 400
$ npm install -g protractor
npm http 400 http://artifactory/artifactory/api/npm/npm-virtual/@types%2fjasmine
我们可以直接在npm public repo上访问该链接但是。它没有通过神器工作。它仍然不受支持。是否有解决方法或修复。
答案 0 :(得分:5)
Npm'斜线'字符编码
默认情况下,npm客户端在与npm注册表通信之前将斜杠字符('/')编码为其ASCII表示形式(“%2f”)。如果您将Tomcat作为HTTP容器运行(Artifactory的默认设置),则会生成“HTTP 400”错误,因为Tomcat默认情况下不允许编码的斜杠。要在使用npm作用域包时避免此错误,可以通过在Tomcat的catalina.properties文件中定义以下属性来覆盖此默认行为:
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true