This utility can be used to allow Luau projects to use npm as a package manager. It lets your projects use string requires: use relative file paths for the project's files or prefix your dependency names with @pkg
to use them.
If you are developing on a platform that does not support requires with, you can use a tool like darklua to automatically convert requires into your platform specific implementation.
Add npmluau
in your dev-dependencies:
yarn add --dev npmluau
Or if you are using npm
:
npm install --save-dev npmluau
In your Luau project package.json
file, add a prepare
script to run npmluau
:
"scripts": {
"prepare": "npmluau",
}
This utility will generate a folder named .luau-aliases
inside node_modules
after installing your dependencies that contains module links to each dependency.
If you using the VS code extension, you can define a directory alias in your workspace settings:
{
"luau-lsp.require.directoryAliases": {
"@pkg": "node_modules/.luau-aliases"
}
}
If you are also running luau-lsp
from the command line interface, you can provide the directory aliases within a configuration file and pass it to the --settings
argument:
{
"luau-lsp.require.mode": "relativeToFile",
"luau-lsp.require.directoryAliases": {
"@pkg": "node_modules/.luau-aliases"
}
}