在大多数情况下,我的.cTags运行良好。但是,在下面提到的场景中,它并不像预期的那样工作。
目录结构
root
- a
- foo.js
- bar.js
- index.js
- b
- current-file.jscurrent-file.js
import { foo } from './a'
foo()index.js
export { default as foo } from './foo'foo.js
const foo = () => 'foo'
export default foo当我试图从current-file.js跳转到foo的定义时,它导航到a/index.js而不是a/foo.js
发布于 2019-10-22 01:11:09
我认为这不是对cTags的限制,而是对ES6语言本身的限制。
大括号导入将首先查找名为a的文件,如果找不到,它将查找名为“a”的目录及其index.js文件(自动解析,例如:a/index.js)。它不会在目录中查找文件。
花括号只查找文件中的非默认导出,而不是查看目录。
示例 (注意:目录a已重命名为c,因为代码框在他的引擎中保留了a名称)
您可以尝试删除/c.js文件来加载c/index.js文件。
另外,我建议您使用这条线,它可以为您提供更多关于js中花括号的提示。
您可能可以使用fs.readDir api对目录进行读取,并自动对index.js中的文件进行require/export;但是index.js将被加载。
https://stackoverflow.com/questions/58231697
复制相似问题