【问题标题】:Cannot find module './version' - npm install on Azure DevOps fails找不到模块 './version' - Azure DevOps 上的 npm 安装失败
【发布时间】:2020-11-16 11:45:18
【问题描述】:

我在 Azure DevOps 中构建 CI/CD 期间遇到了 npm install 步骤的问题。

导致此问题的特定包似乎是 node-sass。这个包过去也给我带来了很多麻烦,但我确实让它工作了,并且构建已经运行了一段时间。现在由于某种原因它们再次失败,但我似乎无法在我的机器上重现该问题,而且该错误对我没有任何意义。

这是失败构建的输出:https://pastebin.com/w4aK4dEh

错误消息是“错误:找不到模块'./version'”

我尝试修改该步骤并将其从简单的 npm install 更改为 npm install --save-dev --unsafe-perm 但它似乎没有任何效果。

package.json

{
  "version": "1.0.0",
  "name": "myproject",
  "private": true,
  "devDependencies": {
    "gulp": "4.0.2",
    "gulp-concat": "2.6.1",
    "gulp-cssmin": "0.2.0",
    "gulp-rename": "2.0.0",
    "gulp-sass": "4.1.0",
    "gulp-uglify": "3.0.2",
    "rimraf": "3.0.2",
    "node-sass": "^4.8.3"
  },
  "dependencies": {}
}

我还尝试完全从依赖项中删除 node-sass,因为我认为 gulp-sass 默认已经包含它,但后来我遇到了“找不到模块 node-sass”错误。

我真的被这个难住了。任何建议将不胜感激。

【问题讨论】:

  • 您在 Azure DevOps 中使用的是自托管还是主机代理?此外,建议您添加system.debug=true 以获得更详细的错误日志信息,以便进一步排除故障。

标签: node.js npm azure-devops gulp node-sass


【解决方案1】:

我不完全确定以下哪一项是成功的关键,但这是我为解决此问题所做的:

  1. 从我的项目中删除 node_modules 文件夹,提交然后修改我的 .gitignore 以将其从存储库中永久排除(是的,我知道这个有点争议,因为有些人说应该签入该文件夹)

  2. 更新 package.json 文件中依赖的版本

  3. 指定要使用的 NodeJs(以及 npm)的特定版本。为此,我只需在 Azure 构建管道中添加一个步骤。有趣的是,最新版本(在撰写本文时为 15.2.1)不起作用,但 LTS 版本 14.15.1 确实起作用。

这三个更改的某些组合确实为我解决了这个问题。我将在此处留下此信息,以防其他人遇到同样的错误消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2014-06-19
    相关资源
    最近更新 更多