0.6.11 • Published 8 months ago

@andyrmitchell/objects v0.6.11

Weekly downloads
-
License
MIT
Repository
-
Last release
8 months ago

Building

  • npm run build_release Will run the lint (failing if it gives any warnings), build it, and deploy with np

Doing it in stages

  • npm run pkglint ensures the code and package set up is optimal
  • npm run build generates the package in ./dist (which package.json tells NPM about in fields such as 'export')
  • np updates the package version, checks everything is OK, and tags it as a git release for NPM, and pushes to NPM.

FAQ

Want to use GitHub Actions to publish to NPM?

What is responsible for the building? Babel?

  • tsup is responsible (I believe uses esbuild under the hood)
  • Babel is only installed to make Jest work

# Troubleshooting

Testing code that imports ESM modules

In jest.config.js

"You do not have permission to publish" / "You do not have write permissions required to publish this package."

If the message comes from np, run npm publish for a more detailed error message.

There are a few reasons:

  • Are you logged in? Run npm whoami (and npm login if needed)
  • Did you verify the email address for your NPM account?
  • Is it a duplicate package name? If so, consider scoping

History

The build process was heavily inspired by https://mikeesto.com/posts/publishing-npm-package/. Notably:

  • tsup builds commonjs and esm modules into ./dist, using the config in npm run build
  • npm run pkglint runs the linter for the Npm Package, to give suggestions that ensure max compatibility. See https://publint.dev.
  • Opted to use https://github.com/sindresorhus/np to build a publishable release.

https://github.com/frehner/modern-guide-to-packaging-js-library is a very helpful resource for understanding the options.

I switched from 'objects' to a scoped package, @andyrmitchell/objects

  • Note my GitHub is @andymitchell, but NPM is @andyrmitchell (r in the middle). It has to be andyrmitchell for permission on NPM.
  • When you scope something by changing the name to use @, it switches to publishing privately.

    • Therefore in package.json I set publishConfig.access to 'public'
  • Had to install Babel to get jest to correctly work with ES Modules (like lodash-es, dot-prop). It feels like a lot of cruft just for that.

0.6.11

8 months ago

0.6.9

9 months ago

0.6.10

9 months ago

0.6.7

10 months ago

0.6.6

10 months ago

0.6.8

10 months ago

0.5.0

12 months ago

0.4.11

1 year ago

0.4.12

1 year ago

0.6.3

11 months ago

0.6.2

11 months ago

0.6.5

11 months ago

0.6.4

11 months ago

0.6.1

12 months ago

0.6.0

12 months ago

0.4.10

1 year ago

0.4.9

1 year ago

0.4.8

1 year ago

0.4.7

1 year ago

0.4.5

1 year ago

0.4.6

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.4.2

1 year ago

0.3.0

1 year ago

0.3.5

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.3.4

1 year ago

0.3.3

1 year ago

0.2.5

1 year ago

0.2.1

1 year ago

0.2.3

1 year ago

0.2.2

1 year ago

0.2.4

1 year ago

0.2.0

1 year ago

0.1.24

1 year ago

0.1.25

1 year ago

0.1.26

1 year ago

0.1.23

1 year ago

0.1.22

1 year ago

0.1.21

1 year ago

0.1.20

1 year ago

0.1.17

1 year ago

0.1.18

1 year ago

0.1.19

1 year ago

0.1.15

1 year ago

0.1.16

1 year ago

0.1.13

1 year ago

0.1.14

1 year ago

0.1.12

1 year ago

0.1.10

1 year ago

0.1.11

1 year ago

0.1.9

1 year ago

0.1.8

1 year ago

0.1.7

1 year ago

0.1.6

1 year ago

0.1.5

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.1.2

1 year ago

0.1.1

1 year ago