不能引用vendor文件夹的包
456vv opened this issue · comments
456vv commented
我的意思是编译成二进制之后,无法引用。虽然有 Context.External,但不知道如何实现。
七叶 commented
如果不使用 mod,而只使用 vendor ,那么 qexp 导出的包应该没有什么区别,直接 import 就可以了。导入路径里不要带有 vendor 。
456vv commented
你可能不理解我的想法,我不能所有包都压到二进制中去,因为一些它不是必要的。
456vv commented
期待功能,编译成二进制之后,在模板中再次能调用到模板目录中的venodr或上层的vendor目录内的包。
七叶 commented
明白了,目前缺少加载源码包功能,在计划中。
七叶 commented
igop 已支持从 GOMOD 项目源码直接加载,但不支持 vendor。
如果想从 vendor 加载,目前提供有两种方式定制.
- 少量的包可以使用
ctx.AddImportDir(path string, dir string) error
支持。 - 可以使用类似下面的方式自己提供 path -> dir 转换.
ctx := igop.NewContext(0)
ctx.Lookup = func(root, path string) (dir string, found bool) {
dir = filepath.Join(root, "vendor", path)
if info, err := os.Stat(dir); err == nil && info.IsDir() {
found = true
}
return
}
_, err := ctx.Run(projdir, nil)
if err != nil {
panic(err)
}