npm install 在两台具有相同配置的计算机上给出不同的输出

问题描述 投票:0回答:2

我有2台电脑。相同的配置。

  • Windows 版本 11
  • Node.js 版本 14.17.1
  • npm 版本 6.14.13
  • 打字稿版本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"
  }
}
npm npm-install aurelia
2个回答
1
投票

为了确保两台机器上的条件相同,您可以尝试清除两台机器上的 npm 缓存 (

npm cache clean --force
) 进行测试,并列出全局安装的 npm 软件包,以检查它们是否是两台机器上都一样(
npm list -g --depth=0
)。
正如您提到的,这假设两台计算机上的 Node.js 和 npm 版本相同。

然后重新安装节点模块:

rm -rf node_modules package-lock.json
npm install

这应该强制重新安装所有依赖项。

确保两台机器设置了相同的相关环境变量,以及相同的 npm config (

npm config list
)
另外,请确保文件系统相同,并且 npm 尝试安装包的目录不存在权限问题。

对于您的具体问题,您可以首先关注

es5-ext
软件包及其 postinstall 脚本。我没有看到任何最近明显的问题
尝试暂时从依赖项中删除
es5-ext
,以确认它是否是不一致的根源。


0
投票

你的问题没有太多可说的。

你可以尝试的事情:

如果您不使用

package-json.lock
,则在正常机器上启用它,运行另一个构建,然后将其复制到其他机器。

另一件事有时会有所帮助,那就是删除

node-modules
package-json.lock
。然后重新运行
npm install

最后,你运行的是一个相当旧版本的 Node。您尝试过升级它吗?也许通过使用

nvm
这样您就可以轻松地在版本之间切换。

© www.soinside.com 2019 - 2024. All rights reserved.