Avoiding Indirect Dependencies in go.mod
Your go.mod file may display "indirect" annotations next to several dependencies despite declaring a specific library, such as github.com/gocolly/colly v1.2.0. This can be confusing and may lead to questions about how to avoid these annotations.
Understanding Indirect Dependencies
Indirect dependencies arise when a library you include (in this case, github.com/gocolly/colly v1.2.0) has unlisted dependencies of its own. These dependencies are required for the functionality of the library but are not explicitly declared in its go.mod file.
Why v1.2.0 Has Indirect Dependencies
The specific version you are using, github.com/gocolly/colly v1.2.0, does not have its own go.mod file. This lack of a go.mod file prevents its direct dependencies from being declared in your go.mod file. As a result, any dependencies that colly requires, such as goquery, htmlquery, and xmlquery, will be marked as indirect.
Solution for Future Versions
The solution lies in upgrading to a version of github.com/gocolly/colly that includes a go.mod file. Versions 2.0.0 and above have this file, which will properly declare dependencies and remove the indirect annotations from your go.mod file.
The above is the detailed content of Why are there 'indirect' dependencies in my go.mod file even though I explicitly declare a specific library?. For more information, please follow other related articles on the PHP Chinese website!