You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

切换NPM Artifactory源后Angular项目构建失败的问题求助

切换NPM Artifactory源后Angular项目构建失败的问题求助

大家好,想咨询一个特别诡异的问题:

我负责的项目部署在公司代理环境下,之前一直用内部的Artifactory X做npm源,不管是本地构建还是通过公司的构建代理执行,从提交代码、拉取依赖包到最终构建发布,整个流程都顺得不行。

最近公司通知要停用Artifactory X,全部迁移到新的Artifactory Y。我按照新Artifactory里的「Set Me Up」指引,把本地的.npmrc配置更新成了新源的信息,操作和当初配置旧源时完全一样:

email = my.email@company.com
always-auth = true
registry=https://y-artifactory.company.com/artifactory/new/url/
//y-artifactory.company.com/artifactory/new/url/:_authToken=here-goes-my-auth-token

结果换源之后,不管是本地构建还是走构建代理,都出问题了:

  1. 第一次构建直接报错说缺少@types/minimatch包。我查了GitHub上的讨论,都说这个包根本不需要手动安装,但为了推进,我还是把它加到了开发依赖里。
  2. 加完之后又出现了更离谱的错误,Angular/TypeScript开始抱怨可选链操作符(?.)的问题:
ERROR in ./node_modules/react-draggable/build/cjs/Draggable.js 210:22
Module parse failed: Unexpected token (210:22)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
| // the underlying DOM node ourselves. See the README for more information.
| findDOMNode() /: ?HTMLElement/{
> return this.props?.nodeRef?.current ?? _reactDom.default.findDOMNode(this);
| }
| render() /: ReactElement<any>/{

我明白这个错误的常见原因——可选链是ES2020的语法,需要对应的转译支持,但我的项目明明目标是ES2015啊!相关的tsconfig配置如下:

{
  "lib": ["es2015", "dom", "ES2020.String"],
  "target": "es2015",
  "experimentalDecorators": true,
  "module": "esnext",
  "moduleResolution": "node"
}

最让我困惑的是:我除了换Artifactory源之外,没有做任何其他代码或配置修改!用旧源的时候一切正常,换了新源就出这种依赖转译的问题。而且我已经确认:

  • npm身份验证是成功的
  • 所有依赖包都已经正常下载到了node_modules里
  • 构建启动阶段没有问题,就是到处理依赖代码的时候才报错

有没有大佬遇到过类似的情况?仅仅切换npm源为什么会引发这类构建错误?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:04:49