npmwally is a command-line tool that automates the conversion of a Lua/Luau npm package into a Wally package.
- Package Detection: Scans the
package.json
and identifies Lua/Luau dependencies. - Dependency Translation: Maps npm package names to their wally equivalents.
- Module Requires Conversion: Runs darklua to convert the string/path requires into Roblox requires.
- Generate a Wally Package: Generate a
wally.toml
and adefault.project.json
. Remove files as specified in the.npmignore
configuration file.
When converting packages, npmwally will run Rojo and darklua. Make sure to have those installed.
You can install npmwally
with npm or yarn:
npm install npmwally --save-dev
yarn add npmwally -D
To convert an npm package to a Wally package, use the convert
command:
npmwally convert --output <output-directory>
For more information about the available options, use the --help
argument:
npmwally convert --help
npmwally convert --use-find-first-child
This command will:
- convert the Lua/Luau code the current working directory to a Wally package in './wally`.
- convert requires using
FindFirstChild
indexing.
--project <project>
: The folder where thepackage.json
file exists (default is the current directory).--output <output>
: The folder where the Wally package will be generated (default iswally
).--modules-folder <module-folder>
: The folder where npm packages are installed (default isnode_modules
).--translate-package <translate-package>
: A package name to translate from npm to Wally format (npm-package=wally-package
).--copy <copy>
: Additional files or directories to copy into the Wally package.--darklua-config <darklua-config>
: Path to a custom Darklua configuration file.--use-find-first-child
: UseFindFirstChild
instead of direct indexing in generated requires.
This project is licensed under the MIT License. See the LICENSE file for details.