npm install在2台配置相同的计算机上提供不同的输出

ltqd579y  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(86)

我有两台电脑。同样的配置。

  • Windows版本11
  • Node.js版本14.17.1
  • npm版本6.14.13
  • Typescript版本4.5.5

我有一个package.json文件。当我执行npm install时,两台计算机上的输出日志是不同的。当然,生成的node_modules文件夹也是不同的。差异在下面以绿色突出显示。
只有在第二台计算机上,我才有突出显示的输出。我想知道为什么会有这种差异?当然,有一些东西可以解释这种差异,它可以帮助我解决我在构建应用程序时遇到的问题。


的数据
下面是我的package.json文件

{
  "name": "gaffeweb",
  "description": "An Aurelia client application.",
  "version": "0.1.0",
  "repository": {
    "type": "???",
    "url": "???"
  },
  "license": "MIT",
  "dependencies": {
    "@flowjs/flow.js": "^2.11.2",
    "ag-grid-aurelia": "^20.2.0",
    "ag-grid-community": "^20.2.0",
    "ag-grid-enterprise": "^20.0.0",
    "aurelia-animator-css": "^1.0.4",
    "aurelia-binding": "2.1.7",
    "aurelia-bootstrapper": "2.3.3",
    "aurelia-breeze": "^2.2.0",
    "aurelia-dialog": "^1.1.0",
    "aurelia-i18n": ">=2.3.2",
    "aurelia-materialize-bridge": "1.2.5",
    "aurelia-templating": "^1.10.1",
    "aurelia-typed-observable-plugin": "^0.4.2",
    "aurelia-validation": "^1.6.0",
    "babel-eslint": "^10.0.1",
    "bluebird": "^3.5.3",
    "breeze-client": "^1.7.2",
    "i18next": "^6.1.2",
    "jquery": "^3.3.1",
    "jqueryui": "^1.11.1",
    "jstree": "^3.3.7",
    "materialize-css": "^1.0.0",
    "metro-dist": "^3.0.18",
    "moment": "^2.24.0",
    "node-sass": "^6.0.1",
    "nprogress": "^0.2.0",
    "requirejs": "^2.3.6",
    "select2": "^4.0.5",
    "svgxuse": "^1.2.6",
    "text": "github:requirejs/text#latest",
    "toastr": "^2.1.4",
    "trumbowyg": "^2.13.0",
    "tslib": "^1.9.3",
    "whatwg-fetch": "^2.0.4",
    "cors": "^2.8.5"
  },
  "peerDependencies": {},
  "devDependencies": {
    "@types/breeze": "^1.6.2",
    "@types/jquery": "^3.3.29",
    "@types/jqueryui": "^1.12.6",
    "@types/materialize-css": "^1.0.6",
    "@types/select2": "^4.0.47",
    "aurelia-cli": "^1.0.0-beta.11",
    "aurelia-testing": "^1.0.0",
    "aurelia-tools": "^2.0.0",
    "browser-sync": "^2.26.0",
    "connect-history-api-fallback": "^1.6.0",
    "debounce": "^1.2.0",
    "event-stream": "^3.3.3",
    "fs": "0.0.1-security",
    "gulp": "^4.0.0",
    "gulp-changed-in-place": "^2.3.0",
    "gulp-htmlmin": "^5.0.1",
    "gulp-notify": "^3.2.0",
    "gulp-plumber": "^1.2.0",
    "gulp-rename": "^1.4.0",
    "gulp-sass": "^4.0.1",
    "gulp-shell": ">=0.6.5",
    "gulp-sourcemaps": "^2.6.4",
    "gulp-tslint": "^8.1.3",
    "gulp-typescript": "^5.0.0-alpha.3",
    "gulp-watch": "^5.0.1",
    "html-minifier": "^3.5.20",
    "merge2": "^1.2.3",
    "minimatch": "^3.0.4",
    "through2": "^2.0.3",
    "tslint": "^5.12.1",
    "typescript": "^3.2.4",
    "vinyl-fs": "^3.0.3"
  }
}

字符串

yfwxisqw

yfwxisqw1#

为了确保两台机器上的条件相同,您可以尝试在两台机器上清除npm cachenpm cache clean --force),并列出全局安装的npm包,以检查它们在两台机器上是否相同(npm list -g --depth=0)。
这假设两台机器上的Node.js和npm版本相同,正如你提到的。
然后重新安装节点模块:

rm -rf node_modules package-lock.json
npm install

字符串
这将强制重新安装所有依赖项。
确保两台计算机具有相同的相关环境变量集,以及相同的npm confignpm config list
此外,确保文件系统相同,并且npm试图安装包的目录没有权限问题。
对于您的特定问题,您可以从关注es5-ext包及其postinstall script开始。我没有看到任何obvious recent issue
尝试并暂时从依赖项中删除es5-ext,以确认它是否是不一致的根源。

lnlaulya

lnlaulya2#

在你的问题中没有太多的东西。
你可以尝试的事情:
如果你没有使用package-json.lock,那么在正常的机器上启用它,运行另一个构建,然后将其复制到其他机器上。
另一件事,有时可以帮助,是删除node-modulespackage-json.lock .然后删除npm install .
最后,你运行的是一个相当旧的Node版本。你试过升级它吗?也许可以使用nvm,这样你就可以轻松地在版本之间切换。

相关问题