Yes, this works as you expect. What it lacks are three big things; making it easy to see what your direct dependencies are, separating dev dependencies from prod dependencies, and an easy way to update a dependency while resolving all transitive dependencies.
There are other shortcomings, but those are the big ones.
There are other shortcomings, but those are the big ones.