npmwally
v0.1.1
Published
A command line utility to convert Lua/Luau npm packages to wally packages
Downloads
14
Maintainers
Readme
npmwally
npmwally is a command-line tool that automates the conversion of a Lua/Luau npm package into a Wally package.
Features
- 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.
Requirements
When converting packages, npmwally will run Rojo and darklua. Make sure to have those installed.
Usage
You can install npmwally
with npm or yarn:
npm install npmwally --save-dev
yarn add npmwally -D
Convert a Package
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
Example
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.
Options
--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.
License
This project is licensed under the MIT License. See the LICENSE file for details.