npm install -g gltf-pipeline后文件为空,怎么回事?

2023-06-27 297 0

项目为:Vue3 + Three.js
参考 👉 vue3 Three.js实现Draco压缩模型和加载模型 这个做的,目的是实现 Draco 压缩模型和加载模型。

npm install -g gltf-pipeline 安装后显示 change 62 packages in 4s。没有报错,但是文件是空的,啥也没有安装到。更不用说后面还得 gltf-pipeline -i test.glb -o test-pipeline.glb -d 了,这是怎么回事?


更新:

package.json 中增 script 中加了脚本:

{
  "script": {
     "pipeline-d": "gltf-pipeline -i test.glb -o test-pipeline.glb -d"
  }
}

但是执行后提示 errno: -4058

D:vue+threeyasuo> gltf-pipeline -i test.glb -o test-pipeline.glb -d
[Error: ENOENT: no such file or directory, open 'D:Projectsvue+threeyasuotest.glb'] {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'D:Projectsvue+threeyasuotest.glb'
}

因为你 npm install 的时候增加了 -g 这个标识呀,所以是安装到全局的。那么你在本地项目中是看不到的安装了这个依赖项的。
但是你执行后续的 gltf-pipeline -i test.glb -o test-pipeline.glb -d 是没问题的,因为你全局环境下是有 gltf-pipeline 这个工具的(如果你本地的环境配置没有错误的话)。

如果说你想是想安装到项目内的,可以去掉 -g 这个命令,直接使用 npm i gltf-pipeline 这个命令把依赖项安装到项目内。


EDIT

😱 不是,你别直接照搬照抄啊,稍微想一想也知道不对呀……
我贴的那个问答,问的是 electron 你这个是 gltf-pipeline 啊!

{
  "script": {
     "pipeline-d": "gltf-pipeline -i test.glb -o test-pipeline.glb -d"
  }
}

然后 npm run pipeline-d 就可以,麻烦稍微理解一下原理和思路呀……

最后,我觉得你转换的过程中会有其他的问题,大概率就是你转换模型的时候模型文件路径的问题了,这个自己稍微改写一下 pipeline-d 这个脚本就好了。

回答

相关文章

nuxt2部署静态化和ssr的时候访问首页先报404再出现首页为什么?
`clip-path` 如何绘制圆角平行四边形呢?
多线程wait方法报错?
VUE 绑定的方法如何直接使用外部函数?
vue2固定定位该怎么做?
谁有redis实现信号量的代码,希望借鉴一下?