oliverdavies.uk/content/node.2365767c-117e-42d3-8657-09bae7d223c2.yml

82 lines
3.8 KiB
YAML

uuid:
- value: 2365767c-117e-42d3-8657-09bae7d223c2
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-06-30T07:12:21+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: 'Ready to go devshells'
created:
- value: '2025-06-27T07:03:24+00:00'
changed:
- value: '2025-06-30T07:12:21+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2025/06/27/ready-go-devshells
langcode: en
body:
- value: |-
When I'm quickly evaluating or contributing to an open source project, sometimes I don't need to create a complicated local environment.
Sometimes I just need PHP, nodejs or Tailwind CSS.
So, I've made some ready to go development shells that I can use.
Each devshell has extra packages installed, such as Composer and Phpactor for PHP, and the the Tailwind CSS language server and watchman for Tailwind CSS.
The code is in a [public Git repository][0], so I can run a simple one-line command to start the devshell:
```plain
nix develop git+https://code.oliverdavies.uk/opdavies/dev-shells#php82
```
If I need PHP and Tailwind CSS, I can run the same command again to create a sub-shell with both sets of packages.
I can also use direnv to achieve the same result by adding these lines to an .envrc file:
```bash
use flake git+https://code.oliverdavies.uk/opdavies/dev-shells#php74
use flake git+https://code.oliverdavies.uk/opdavies/dev-shells#tailwindcss
```
For long-term projects, I would create and commit a [specific flake.nix file][1] to the code repository so the environment is reproducible and the packages are locked, but this works when I just need something quickly.
[0]: https://code.oliverdavies.uk/opdavies/dev-shells
[1]: /daily/2025/06/26/project-specific-dependencies-nix-flakes
format: markdown
processed: |
<p>When I'm quickly evaluating or contributing to an open source project, sometimes I don't need to create a complicated local environment.</p>
<p>Sometimes I just need PHP, nodejs or Tailwind CSS.</p>
<p>So, I've made some ready to go development shells that I can use.</p>
<p>Each devshell has extra packages installed, such as Composer and Phpactor for PHP, and the the Tailwind CSS language server and watchman for Tailwind CSS.</p>
<p>The code is in a <a href="https://code.oliverdavies.uk/opdavies/dev-shells">public Git repository</a>, so I can run a simple one-line command to start the devshell:</p>
<pre><code>nix develop git+https://code.oliverdavies.uk/opdavies/dev-shells#php82
</code></pre><p>If I need PHP and Tailwind CSS, I can run the same command again to create a sub-shell with both sets of packages.</p>
<p>I can also use direnv to achieve the same result by adding these lines to an .envrc file:</p>
<pre><code>use flake git+https://code.oliverdavies.uk/opdavies/dev-shells#php74
use flake git+https://code.oliverdavies.uk/opdavies/dev-shells#tailwindcss
</code></pre><p>For long-term projects, I would create and commit a <a href="/daily/2025/06/26/project-specific-dependencies-nix-flakes">specific flake.nix file</a> to the code repository so the environment is reproducible and the packages are locked, but this works when I just need something quickly.</p>
summary: ''
field_daily_email_cta:
- target_type: node
target_uuid: c74de3cf-5362-4d08-935a-a9d0d22fcb94