Caution
This project has been superseded (and all of its useful bits subsumed) by the
xscripts project init --template lib-cjs
command.
A CJS template with GitHub Action workflows, CI/CD publishing and deployment automation scripts, and the like.
Published package not meant for public consumption! Do not install this!
Note: NPM versions >=7 may need
npm install --legacy-peer-deps
until upstream peer dependency problems are resolved.
npm install @xunnamius/dummy-pkg-1
[additional details]
Note: you probably don't need to read through this! This information is primarily useful for those attempting to bundle this package or for people who have an opinion on ESM versus CJS.
This is a dual CJS2/ES module package. That means this package exposes both CJS2 and ESM entry points.
Loading this package via require(...)
will cause Node and Webpack to use the
CJS2 bundle entry point, disable tree shaking in Webpack
4, and lead to larger bundles in Webpack 5. Alternatively, loading this package
via import { ... } from ...
or import(...)
will cause Node to use the ESM
entry point in versions that support it, as will Webpack.
Using the import
syntax is the modern, preferred choice.
For backwards compatibility with Webpack 4 (compat with Webpack 4 is not
guaranteed!) and Node versions < 14, package.json
retains the
module
key, which points to the ESM entry point, and the
main
key, which points to the CJS2 entry point explicitly
(using the .js file extension). For Webpack 5 and Node versions >= 14,
package.json
includes the exports
key,
which points to both entry points explicitly.
Though package.json
includes
{ "type": "commonjs"}
, note that the ESM entry points are ES
module (.mjs
) files. package.json
also includes the
sideEffects
key, which is false
for optimal tree
shaking, and the types
key, which points to a TypeScript
declarations file.
Additionally, this package does not maintain shared state and so does not exhibit the dual package hazard. However, setting global configuration may not actually be "globally" recognized by third-party code importing this package.
import { sum } from '@xunnamius/dummy-pkg-1';
sum(2, 2); // = 4
Project documentation can be found under docs/
.
New issues and pull requests are always welcome and greatly appreciated! 🤩 Just as well, you can star 🌟 this project to let me know you found it useful! ✊🏿 Thank you!
See CONTRIBUTING.md and SUPPORT.md for more information.