在我的package.json中,我有以下脚本:
"scripts": {
"build": "tsc",
"prepublish": "yarn build"
},
我希望当我发出命令“yarn publish”时,它将运行预发布脚本,这将导致构建脚本运行,这将运行typescript编译器,并且当发布发生时,新的javascript是由typescript编译器生成的部分是已发布的包。
查看yarn publish命令的输出,看起来就像是发生了什么:
C:\> yarn publish
yarn publish v1.0.2
[1/4] Bumping version...
info Current version: 0.0.2
question New version: 0.0.3
info New version: 0.0.3
[2/4] Logging in...
[3/4] Publishing...
$ tsc
success Published.
[4/4] Revoking token...
info Not revoking login token, specified via config file.
Done in 17.20s.
所以看起来很好。当我完成这个时,我的本地包目录中的javascript很好。
但是,如果我现在使用yarn install在其他地方安装该软件包,则安装的软件包具有在运行typescript编译器(tsc)之前就已存在的javascript。在预发布脚本之前,几乎就像打包出版的内容是世界状态。这似乎既错误又反直觉。
这是一个错误还是我误解了一些基本的东西?