Reputation: 131
I'm getting my hands dirty with Babel for the 1st time to convert Jest tests from ES6 syntax to commonJS; this will likely involve using the @babel/plugin-transform-modules-commonjs
babel plugin which I'm trying to install in my Next.js project. Looking at this part of Babel's configuration docs, I see the term package
pop up a lot.
Are package hierarchies a Babel convention, Node-defined feature, or part of base JavaScript itself? What exactly defines a package in this context, and where is there documentation for them? Is babel-jest
a stable alternative to this problem?
Upvotes: 1
Views: 1700
Reputation: 61
Babel uses a package.json
file to resolve module dependencies. A package is a collection of files which can be imported using the require()
function. You can read more about packages in the Node.js documentation on packages.
There is no standard way to define a package hierarchy, but Babel does have some conventions for how to organize your files. You can read more about that in the Babel documentation on organizing your code. Babel-jest is a stable alternative to converting Jest tests from ES6 syntax to commonJS. It provides support for using babel-plugin-transform-modules-commonjs
to convert your modules to CommonJS.
Specifically, in the context of the Babel documentation you mentioned, the word "package" refers to your application itself (which is also considered a package) as well as other applications contained within the same repository (in case you have a monorepo containing many applications).
Upvotes: 4