A tool for managing Unity projects with multiple UnityPackageManager packages.
Splitting up large codebases into separate independently versioned packages is extremely useful for code sharing. However, making changes across many repositories is messy and difficult to track, and testing across repositories gets complicated really fast.
NPM Publisher Suport is a tool that optimizes the workflow around managing multi-package repositories.
- Publish packages to any npm registry (like NpmJS or you own) directly from the Unity
- Fast switch between npm registries
- Track available updates for package dependencies:
- From Unity built-in registry
- From Scoped Package Registries
- From Local project (it’s convenient if several packages are located in one project)
- Increment packages version from Unity
- Patch Dependent option allow to automatically patch dependant packages version (If there are several packages in the project that depend on the current one)
- Samples~ and Documentation~ folders support:
- Automatically copy contents of
Samples
folder toSamples~
(same forDocumentation
) before package publishing
- Automatically copy contents of
- Publish modified packages command compares local package versions with specified remote registry that allow publish packages much faster
There's actually very little to it. You have a file structure that looks like this:
Assets/
Package-A/
Sources/
package.json
Package-B/
Sources/
Runtime/
Editor/
Samples/
Documentation/
package.json
README.md
LICENSE.md
Npm Published Support package depends on:
- Npm Package Loader allows you to pack assets from your package into unitypackage and upload it to a dedicated FTP server, which allow to bypass the npm package size limit
- Unity Editor Coroutines allows the user to start the execution of iterator methods within the Editor similar to how we handle Coroutines inside MonoBehaviour scripts during runtime
Npm package is available at npmjs.com. To use it, add the following line to dependencies section of your manifest.json
. Unity should download and link the package automatically:
{
"scopedRegistries": [
{
"name": "NpmJS",
"url": "https://registry.npmjs.org/",
"scopes": [
"com.codewriter"
]
}
],
"dependencies": {
"com.codewriter.npm-publisher-support": "0.6.0"
}
}
Using NPM Publisher Support? Add a README badge to show it off:
[![NPM Publisher Support](https://img.shields.io/badge/maintained%20with-NPM%20Publisher%20Support-blue.svg)](https://github.com/vanifatovvlad/NpmPublisherSupport)