我有两台电脑。同样的配置。
- 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"
}
}
字符串
2条答案
按热度按时间yfwxisqw1#
为了确保两台机器上的条件相同,您可以尝试在两台机器上清除npm cache(
npm cache clean --force
),并列出全局安装的npm包,以检查它们在两台机器上是否相同(npm list -g --depth=0
)。这假设两台机器上的Node.js和npm版本相同,正如你提到的。
然后重新安装节点模块:
字符串
这将强制重新安装所有依赖项。
确保两台计算机具有相同的相关环境变量集,以及相同的npm config(
npm config list
)此外,确保文件系统相同,并且npm试图安装包的目录没有权限问题。
对于您的特定问题,您可以从关注
es5-ext
包及其postinstall script开始。我没有看到任何obvious recent issue。尝试并暂时从依赖项中删除
es5-ext
,以确认它是否是不一致的根源。lnlaulya2#
在你的问题中没有太多的东西。
你可以尝试的事情:
如果你没有使用
package-json.lock
,那么在正常的机器上启用它,运行另一个构建,然后将其复制到其他机器上。另一件事,有时可以帮助,是删除
node-modules
和package-json.lock
.然后删除npm install
.最后,你运行的是一个相当旧的Node版本。你试过升级它吗?也许可以使用
nvm
,这样你就可以轻松地在版本之间切换。