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
我的疑问
- 为什么用
&&把两个命令串起来通过npm run build执行时,vue-tsc生成的类型文件就没了?分开执行就一切正常? - 是不是
npm run的执行环境和直接在终端敲npx命令有什么不一样的地方?比如工作目录、环境变量之类的差异?
希望有遇到过类似问题的朋友能给我点思路,谢谢大家!
内容来源于stack exchange
相关产品推荐
相关产品推荐

