当拥有不同的代码库时,我将如何在它们之间共享代码。 所有代码都是打字稿和持续开发。
我正在寻找一个简单的解决方案。
我尝试过的事情:
import { type } from '../../otherProj/src/type';
不起作用:
error TS2307: Cannot find module '../../otherProj/src/type'
使用
在本地安装npm i ../otherProj
有问题,因为我总是需要在每次更改时更新库的版本,或者我必须手动卸载/重新安装库。
使用git子模块。
正如我们在Windows上一样,我们现在正在使用mklink /D /J
还有其他选择吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
我最终设置了一个gulp-task来监视主要位置的代码库,并将源代码和已编译的输出复制到辅助项目/目标。共享库位于两个项目的根目录中,并具有相同的相对路径。
在目标处,我已经.gitignore了复制的源。
这很好用,但是主要的缺点是编辑器中的符号引用会导致我编辑镜像代码,而不是托管源代码。这可以通过使用git“子模块”方法来改进,其中两个树都将被管理,但我放弃了它,因为它似乎增加了复杂性和源服务器依赖性。
来自.net与编译和共享程序集这已经证明是一个非常困难的问题,我怀疑尝试复制这种行为我打字稿可能根本不是正确的方法吗?
function compileUtils() {
// Tried to use the tool syncy for this, but it did not work with "../", had to revert to manual sync.
// NB: This will break when bad files are removed and renamed.
return gulp.src(utilsPath)
.pipe(gulp.dest('./utils'));
}
function compileBuiltUtils() {
// Copy of the above, copies the built utils files
return gulp.src(utilsBuiltPath)
.pipe(gulp.dest('./build/utils'));
}