【发布时间】:2018-11-09 23:48:18
【问题描述】:
所以我有标准的文件夹结构
dist/
src/
src 有我的 .ts 文件,dist 有我的 .js 文件。
(我的 tsconfig.json 文件中有"outDir":"dist",并且"includes" 设置为'src')。
注意“dist”在我的gitignore 文件中,所以它不在版本控制中,所以当它转到Travis 或CircleCI 时,dist 中没有任何内容文件夹,直到我运行 tsc。
这是 问题 - 如果我先运行 npm install - 它会失败,因为我的 package.json 中有这个:
"bin":{
"foo" :"dist/cli.js" // dist/cli.js does not exist yet
}
但如果我首先运行tsc - tsc 将丢失编译所需的依赖项,如果我运行npm install 就会到达。
唯一我能想到的解决这个问题的方法是先安装所有必要的 tsc 依赖项,然后运行 tsc,然后运行 npm install --production。
但这并不是最方便的做法。
有没有人遇到过这个问题并找到了好的解决方案?
【问题讨论】:
-
我无法重现您在问题中描述的问题。我创建了一个新目录,将
package.json与您在问题中显示的规范放在一起,添加几个随机依赖项,然后运行npm install没有任何问题。 -
您可能有
install或prepare脚本执行了不应该执行的操作。你可以发布你的 package.json 吗?您可能应该使用prepublishOnly。仅仅拥有bin不会导致npm install失败
标签: node.js typescript npm npm-install tsc