You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NPM包构建无法生成index.d.ts文件的问题咨询及npx与npm命令差异疑问

NPM包构建无法生成index.d.ts文件的问题咨询及npx与npm命令差异疑问

大家好,我最近用npm create vite@latest搭了一个NPM包项目,遇到了个挺奇怪的问题,想请各位帮忙分析下:

问题背景

我在package.json里配置的build脚本是这样的:

"build": "vue-tsc -p tsconfig.build.json && vite build"

本来预期执行构建后,dist目录里会同时产出打包后的JS/CSS文件,还有vue-tsc生成的index.d.ts等类型声明文件,但实际情况却不对劲。

执行npm run build的结果

当我直接跑npm run build时,输出看起来是正常完成的:

$ npm run build
> npm-package@0.0.0-dev4 build
> npx vue-tsc -p tsconfig.build.json && vite build

vite v7.0.3 building for production...
✓ 5 modules transformed.
dist/npm-package.css 0.04 kB │ gzip: 0.06 kB
dist/index.es.js 1.64 kB │ gzip: 0.81 kB │ map: 1.78 kB
dist/npm-package.css 0.04 kB │ gzip: 0.06 kB
dist/index.umd.js 1.69 kB │ gzip: 0.84 kB │ map: 1.72 kB
✓ built in 205ms

但查看dist目录,发现只有这些文件,完全没有类型声明:

$ ls dist/
index.es.js index.es.js.map index.umd.js index.umd.js.map npm-package.css vite.svg

分开执行命令的结果

可是如果我把两个命令分开,先单独跑npx vue-tsc -p tsconfig.build.json,再看dist目录,index.d.ts和其他类型文件就都出来了:

$ npx vue-tsc -p tsconfig.build.json ; ls dist/
App.vue.d.ts components/ index.d.ts index.es.js index.es.js.map index.umd.js index.umd.js.map main.d.ts npm-package.css vite.svg

我的疑问

  1. 为什么用&&把两个命令串起来通过npm run build执行时,vue-tsc生成的类型文件就没了?分开执行就一切正常?
  2. 是不是npm run的执行环境和直接在终端敲npx命令有什么不一样的地方?比如工作目录、环境变量之类的差异?

希望有遇到过类似问题的朋友能给我点思路,谢谢大家!

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 10:13:03