Seamless Node.js in Elixir.
⚠️ WARNINGThis is a pre-release version. As such, anything may change at any time, the public API should not be considered stable, and using a pinned version is recommended.
Provides Mix tasks for the installation and execution of Node.js.
This project is currently not recommended for production Elixir use. Its main purpose is to offer a straightforward interface for utilizing Node.js and npm libraries within Mix tasks.
gpg
must be available in your PATH to verify the signature of Node.js releases.
The package can be installed by adding nodelix
to your list of dependencies in mix.exs
:
def deps do
[
{:nodelix, "1.0.0-alpha.13", only: :dev, runtime: false}
]
end
Now you can install Node.js by running:
$ mix nodelix.install --version 18.18.2
And invoke Node.js with:
$ mix nodelix --version 18.18.2 some-script.js --some-option
If you omit the --version
flag, the latest known
LTS version at the
time of publishing will used.
The Node.js installation is located at _build/dev/nodejs/versions/$VERSION
.
There is one global configuration for the nodelix application:
:cacerts_path
- the directory to find certificates for https connections
You can define multiple nodelix profiles. There is a default empty profile which you can configure its args, current directory and environment:
config :nodelix,
default: [
args: ~w(
some-script.js
--some-option
),
cd: Path.expand("../assets", __DIR__),
],
custom: [
args: ~w(
another-script.js
--another-option
),
cd: Path.expand("../assets/scripts", __DIR__),
env: [
NODE_DEBUG: "*"
]
]
The default current directory is your project's root.
To use a profile other than default
, you can use the --profile
option:
mix nodelix --profile custom
When mix nodelix
is invoked, the task arguments will
be appended to the ones configured in the profile.
This project follows the principles of Semantic Versioning (SemVer).
Based on the code from tailwind
(v0.2.2).
For licensing and copyright details, refer to the LICENSE
file.