Jac*_*lyk 12 github npm typescript npm-install
请考虑以下情形:
package.json文件有一个构建脚本,它根据TypeScript代码和一个发布脚本创建JavaScript文件,然后将生成的JS文件放在npm上.package.json文件中)更改为修改的包到我的fork的GitHub URL并执行npm install.这不起作用,因为:
dist字段中的typescript文件,只列出自动生成的JS文件,因此在npm安装期间不会提取TypeScript文件.我怎么解决这个问题?有没有一种方法可以修改行为,npm install以便它在不存在的repo中获取文件dist,然后在安装期间运行构建脚本?
Pio*_*dal 10
我有同样的问题。看到很多关于 monorepos 的文章(下面的链接),但没有太多关于如何将 TypeScript 项目拆分为单独的存储库。
简而言之,您需要一步一步地构建 JS 文件。
有关工作代码示例,请参阅https://github.com/stared/yarn-adding-pure-typescript-package-example。
所以,有几个解决方案。假设存储库是someuser/package-to-import
使用yarn,您可以直接从GitHub存储库中获取项目:
yarn add someuser/package-to-import#master
Run Code Online (Sandbox Code Playgroud)
(或与 相同npm install someuser/package-to-import#master)
如果你在这个存储库的一个分支上工作,你可以通过package.json在package-to-importrepo 中添加这部分来让你的生活更轻松:
"scripts": {
...,
"postinstall": "tsc --outDir ./build"
}
Run Code Online (Sandbox Code Playgroud)
现在它yarn add/upgrade无需额外脚本即可使用。或者,您可以半手动完成,即在您的主存储库中创建一个脚本package.json
"scripts": {
...,
"upgrade-package-to-import": "yarn upgrade package-to-import && cd node_modules/package-to-import && yarn build"
}
Run Code Online (Sandbox Code Playgroud)
有一种不同的方法可以将存储库克隆到不同的文件夹、构建文件并链接它。
git clone git@github.com:someuser/package-to-import.git
cd package-to-import
npm run build # or any other instruction to build
npm link
Run Code Online (Sandbox Code Playgroud)
如果您使用纱线,最后两行将是:
yarn build
yarn link
Run Code Online (Sandbox Code Playgroud)
然后,进入你的项目所在的文件夹并写入
npm link package-to-import
Run Code Online (Sandbox Code Playgroud)
或者在纱线的情况下
yarn link package-to-import
Run Code Online (Sandbox Code Playgroud)
这些是符号链接,因此当您从 repo 中提取并构建文件时,您将使用更新的版本。
也可以看看:
一种完全不同的方法。对于使用 git 子模块的混合建议:
该文档为prepack脚本提示的依赖从git仓库安装后,它开始运行。尝试将这样的东西放在package.jsongit 依赖项中:
{
"scripts": {
"prepack": "call the build script"
}
}
Run Code Online (Sandbox Code Playgroud)
这应该在你之后构建包npm install,这听起来像你想要做的。我不确定您是否还有其他问题。
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |