对于我们的Electron应用程序,我们需要特定版本的pixi.js(5.0.0-rc.3)。因此,在package.json中,我们指定了"pixi.js": "^5.0.0-rc.3",

当我们现在运行npm install并打开我们的应用程序时,将显示pixi的欢迎消息和package-lock.json状态版本5.0.4。我们尝试删除node_modules文件夹并重新安装所有模块,但是版本仍然错误。

我们在html文件中的import语句是const PIXI = require('pixi.js');,如果我没有记错的话,这应该得到本地安装的pixi版本。

这是一个错误吗?还是故意的(如果是,哪个目的)?

更新资料

由于现在有一些答案和评论,因此,这是到目前为止我们进一步尝试的方法:


删除package-lock.json,node_modules文件夹(本地和全局)并再次运行npm i
重新安装NodeJS(LTS)
使用当前版本的NodeJS测试了所有内容
从package.json中删除了'^',因为安装范围内的任何版本都可以
在另一台Windows 10计算机和macOS上对其进行了测试


更新2

现在有三个答案,到目前为止,没有一个可以解决问题,我开始相信这不是我的错,但可能是Pixi JS的错误。我打开了一个问题on their GitHub page,也许他们可以提供帮助。

最佳答案

TL; DR解决方案是在您的package.json中显式指定@pixi子模块的确切版本,如下所示:

"dependencies": {
  "@pixi/core": "5.0.0-rc.3",
  ... (all other pixi submodules here) ...
  "pixi.js": "5.0.0-rc.3"
}


详细说明:

您正在安装pixi.js模块版本5.0.0-rc.3,但这实际上只是一堆pixi子模块及其各自版本的容器。子模块依赖项的指定方式类似于@pixi/core": "^5.0.0-rc.3";^导致npm获取最新版本。

通过将子模块添加到package.json依赖项旁边的pixi.js文件中,我能够控制子模块的版本



这是我用来确认正在发生的事情并列出pixi子模块的步骤:

npm init -y                             ## Create empty npm module
npm install [email protected] --save --save-exact  ## Add pixi.js
cat package-lock.json                   ## See below


...
    “ @ pixi / core”:{
      “ version”:“ 5.0.4”,
      “已解决”:“ https://registry.npmjs.org/@pixi/core/-/core-5.0.4.tgz”,
      “完整性”:“ sha512-P2K2JJC + BFZrRZT9P0 + Ir8jd7VrH6w7 / L1Njg2 + iSetW9TdjkPahR + w93VGwpEzEkrYHoNs6FbSFCY38P / 6g8A ==“,
      “要求”:{
        “ @ pixi / constants”:“ ^ 5.0.4”,
        “ @ pixi / display”:“ ^ 5.0.4”,
        “ @ pixi / math”:“ ^ 5.0.4”,
        “ @ pixi / runner”:“ ^ 5.0.4”,
        “ @ pixi / settings”:“ ^ 5.0.4”,
        “ @ pixi / ticker”:“ ^ 5.0.4”,
        “ @ pixi / utils”:“ ^ 5.0.4”
      }
    },
...
    “ pixi.js”:{
      “ version”:“ 5.0.0-rc.3”,
      “已解决”:“ https://registry.npmjs.org/pixi.js/-/pixi.js-5.0.0-rc.3.tgz”,
      “完整性”:“ sha512- + B6ZMvJNEz / IoiC + BrwP9PsDonEAj4TOZw + yuZ / K8WQokcSm9uAp3PJ + 6eFFWTjnkxsAcMP9tgldmDdTFoAF7w ==“,
      “要求”:{
        “ @ pixi / accessibility”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / app”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / constants”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / core”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / display”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / extract”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-alpha”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-blur”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-color-matrix”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-displacement”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-fxaa”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / filter-noise”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / graphics”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / interaction”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / loaders”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / math”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / mesh”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / mesh-extras”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / mixin-cache-as-bitmap”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / mixin-get-child-by-name”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / mixin-get-global-position”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / particles”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / polyfill”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / prepare”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / runner”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / settings”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / sprite”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / sprite-animated”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / sprite-tiling”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / spritesheet”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / text”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / text-bitmap”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / ticker”:“ ^ 5.0.0-rc.3”,
        “ @ pixi / utils”:“ ^ 5.0.0-rc.3”
      }
    },
...

关于node.js - NPM安装了与package.json不同的版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56805264/

10-11 07:31