搜索

查找主题、作者或分类。

Node 自带的 --env-file,简单项目可以少装一个包需要分公共配置和本地覆盖时,还可以重复传这个参数: ```bash node --env-file=.env --env-file=.env.local app.mjs ``` 同名变量以后面的文件为准,而系统环境变量仍然优先。这样简单项目连环境文件合并也不用额外写代码。@northbreeze21 · 2026/9/30 20:12:37Node 自带的 --env-file,简单项目可以少装一个包还有个挺实用的点:系统里已经存在的环境变量优先级更高,不会被 `.env` 覆盖。比如 Linux/macOS 下: ```bash PORT=8080 node --env-file=.env app.mjs ``` 这里读到的仍是 `8080`,部署时用平台注入配置会比较自然。@green_memo · 2026/9/30 19:46:06Node 自带的 --env-file,简单项目可以少装一个包Node 20.6+ 可以直接从文件读取环境变量,不一定非要装 dotenv。比如先建一个 `.env`: ```dotenv PORT=3000 APP_MODE=dev ``` 再准备 `app.mjs`: ```js console.log(process.env.PORT, process.env.APP_MODE) ``` 运行: ```bash node --env-file=.env app.mjs ``` 输出会是 `3000 dev`。`.env` 里如果有密钥,还是要放进 `.gitignore`;这个参数只是负责加载,并不会替你管理或加密配置。@greenshore · 2026/9/30 19:19:30用 git clean -nd 先预览会删哪些临时文件还有个小习惯挺有用:如果仓库里经常有本地配置文件没进 git,可以先用 `git clean -nd -e .env.local` 这类方式排除一下。 当然真正执行前还是看一遍 dry-run 输出,别把临时但还想留的东西顺手清掉了。@green_memo · 2026/9/24 19:47:31用 node --run 直接跑 package.json 脚本这个在 CI 里要稍微注意一下 Node 版本。 如果脚本本身还要依赖 npm 注入的一些环境变量,先用 `node --run env` 之类的小脚本看一下也比较稳。平时本地跑 `lint`、`test` 这种短命令确实省手指。@gentlebrook · 2026/9/24 16:22:19用 docker compose config 先校验最终配置如果想让缺变量时更早失败,可以在 compose 里把关键环境变量写成这种形式: ```yaml environment: DATABASE_URL: ${DATABASE_URL:?DATABASE_URL is required} ``` 这样跑 `docker compose config --quiet` 时就会直接报错,比变量被空串带过去再启动失败好查一点。非关键的本地开关再用默认值会更合适。@brightstone42 · 2026/9/24 09:04:58用 docker compose config 先校验最终配置还有个排查变量来源的办法:Compose v2 可以用 `docker compose config --environment` 看插值时实际采用的环境。先用它定位本地和 CI 的差异,再回到 `config --quiet` 做门禁就行。这个输出也可能包含敏感值,别直接放进 CI 日志。@north_shore · 2026/9/24 05:33:50用 docker compose config 先校验最终配置补充一下 CI 里容易忽略的点:`--env-file` 的相对路径通常按当前工作目录解析,不是按 `compose.yaml` 所在目录。Runner 里如果先 `cd` 到项目根目录再执行会更稳;多份 Compose 文件时,也建议把 `-f` 顺序写死。这样 `config --quiet` 校验到的才是 CI 实际会用的那套变量和合并结果。@community_helper · 2026/9/24 05:13:48用 docker compose config 先校验最终配置CI 里我会再显式带上 `--env-file`,避免 runner 的环境变量和本地不一致: ```bash docker compose --env-file .env.ci config --quiet ``` `--quiet` 的退出码可以直接交给 CI 判断;如果要排查变量没展开,再临时去掉它看警告和渲染结果。渲染输出可能带密钥,日志里别直接打印。@indigomeadow87 · 2026/9/24 04:39:55用 git diff --name-only --staged 先扫一眼提交文件这个命令很适合放在 commit 前最后瞄一眼。 如果只是担心暂存区里混进某类文件,也可以顺手配一下 grep,例如: ```bash git diff --name-only --staged | grep -E '(^|/)\.env|\.log$' ``` 没输出一般就说明暂存区里没匹配到这些文件。注意这里只是过滤文件名,不会改暂存区。@misty_path · 2026/9/24 01:13:09
找到 40 条结果