53 lines
2.2 KiB
Markdown
53 lines
2.2 KiB
Markdown
# Migration Guide
|
|
|
|
This release is a breaking migration from recipes and node attributes to custom resources.
|
|
|
|
## What Changed
|
|
|
|
The cookbook no longer exposes `nodejs::default`, `nodejs::install`, `nodejs::repo`, `nodejs::npm`, `nodejs::npm_packages`, or the install-method recipes. The `attributes/` directory was removed. Configure Node.js through resource properties instead of `node['nodejs']` attributes.
|
|
|
|
## Recipe to Resource Mapping
|
|
|
|
| Before | After |
|
|
| ------------------------------------------------- | ------------------------------------------------------------- |
|
|
| `include_recipe 'nodejs::default'` | `nodejs_install 'nodejs'` plus optional `nodejs_npm_packages` |
|
|
| `include_recipe 'nodejs::repo'` | `nodejs_repository 'nodesource'` |
|
|
| `include_recipe 'nodejs::nodejs_from_package'` | `nodejs_install 'nodejs' do install_method 'package' end` |
|
|
| `include_recipe 'nodejs::nodejs_from_binary'` | `nodejs_install 'nodejs' do install_method 'binary' end` |
|
|
| `include_recipe 'nodejs::nodejs_from_source'` | `nodejs_install 'nodejs' do install_method 'source' end` |
|
|
| `include_recipe 'nodejs::nodejs_from_chocolatey'` | `nodejs_install 'nodejs' do install_method 'chocolatey' end` |
|
|
| `include_recipe 'nodejs::npm'` | `nodejs_npm_install 'npm'` |
|
|
| `node['nodejs']['npm_packages']` | `nodejs_npm_packages 'packages'` |
|
|
|
|
## Examples
|
|
|
|
Install Node.js from NodeSource packages:
|
|
|
|
```ruby
|
|
nodejs_install 'nodejs' do
|
|
install_method 'package'
|
|
version '24.15.0'
|
|
end
|
|
```
|
|
|
|
Install packages that used to be configured with `node['nodejs']['npm_packages']`:
|
|
|
|
```ruby
|
|
nodejs_npm_packages 'application packages' do
|
|
packages [
|
|
{ name: 'express' },
|
|
{ name: 'socket.io', version: '4.8.1' },
|
|
]
|
|
end
|
|
```
|
|
|
|
The `nodejs_npm` alias still works for the `npm_package` resource, but it no longer auto-includes any Node.js or npm recipes. Install Node.js first:
|
|
|
|
```ruby
|
|
nodejs_install 'nodejs'
|
|
|
|
nodejs_npm 'express'
|
|
```
|
|
|
|
See `test/cookbooks/test/recipes/` for runnable migration examples used by Kitchen.
|