goland 中 scratch file 的使用问题

2020-05-14 16:20:18 +08:00
 creedowl

今天研究了一下 goland 的 scratch file,发现真是一个很好用的功能,但遇到了一个依赖上的问题

scratch file 可以使用 module 的上下文( using context of module ),我选择了当前在开发的 module (采用 go mod ),就遇到了依赖的问题,但 ide 的补全等功能都可以正常使用

go.mod中 module 名不是一个单词时(包含 . / _ 等符号时),编译运行 scratch file 就会找不到依赖

scratch_4.go:3:8: cannot find package "tttt-" in any of:
	/usr/local/Cellar/go/1.14.2_1/libexec/src/tttt- (from $GOROOT)
	/Users/creedowl/go/src/tttt- (from $GOPATH)

只有在 module 名是一个单词的时候才能正常编译运行,但使用项目的 github 地址等作为 module 名是很普遍的操作,也是官方支持的,所以是否有办法在 module 名不为单个单词时解决 scratch file 的依赖问题?

PS 我测试了项目在 go path 内外,都会有这个问题

2714 次点击
所在节点    Go 编程语言
3 条回复
YakuMioto
2020-05-14 23:45:53 +08:00
同样困扰

但是没有好的解决方法(可能我不知道), scratch file 用来写一些不引入第三方的东西还可以

我目前的做法就是创建一个项目,然后把所有临时验证逻辑也好等等的代码都写在那个项目里.
creedowl
2020-05-15 10:03:24 +08:00
@YakuMioto #1 有一个相关 issue 讨论了这个问题

[issue]( https://youtrack.jetbrains.com/issue/GO-9330)

但也没有很好的解决方案。这应该是 go compiler 的历史问题,scratch file 是单个文件,不属于 go module,所以编译时采用传统的 go path,会到 go path 中找依赖,不知道有没有解决方案
hijoker
2022-01-04 17:38:17 +08:00
现在用 go mod 还是不行么?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671673

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX