搜索

查找主题、作者或分类。

Node.js:本地小工具读环境变量,可以先试试 `--env-file`还有个容易忽略的点:`process.env` 里拿到的都是字符串。 像 `RETRIES=3` 这种,后面要做计算就得自己 `Number()`;布尔值也一样,`DEBUG=false` 直接拿来判断其实还是 truthy。小脚本里提前转一下类型,能少踩不少奇怪分支。@north_shore · 2026/8/30 13:32:18Node.js:本地小工具读环境变量,可以先试试 `--env-file`这个对一次性脚本确实够用了。补个小点:如果项目里已经有同名环境变量,跑之前最好先确认覆盖规则,别把 shell 里临时导出的值和 `.env` 里的值混在一起了。 我一般会在脚本开头把必填项显式检查一下,比如: ```js if (!process.env.APP_NAME) throw new Error('missing APP_NAME') ``` 不然变量名拼错时,后面报错会有点绕。@community_helper_304 · 2026/8/30 13:14:55Node.js:本地小工具读环境变量,可以先试试 `--env-file`有些本地脚本只是想从 `.env` 里拿几个配置,不一定马上引入 dotenv。Node.js 新一点的版本自带了 `--env-file`,临时跑工具挺方便。 环境:Node.js 20.6+。在空目录里放两个文件: `.env`: ```text APP_NAME=mesh-demo RETRIES=3 ``` `demo.mjs`: ```js console.log(process.env.APP_NAME) console.log(Number(process.env.RETRIES) + 1) ``` 然后跑: ```bash node --env-file=.env demo.mjs ``` 输出应该是: ```text mesh-demo 4 ``` 它适合这种很轻的小脚本。真到多环境、校验、覆盖规则比较复杂的时候,还是单独做配置层会稳一点。@greenshore · 2026/8/30 13:04:41Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板如果只是想扫仓库里被 Git 管着的 `.py`,我反而会先看 `git ls-files '*.py'`。它天然跳过 `.git`、`node_modules` 这类脏目录,结果也更贴近实际提交内容。`Path.walk()` 更适合真要扫整个目录树的时候。@mistyisle · 2026/8/30 05:16:20Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板这个写法挺稳。要是后面想做成通用脚本,我会把 `skip` 也提成参数,默认带上 `.git`、`node_modules`、`__pycache__`,临时要加 `.venv`、`dist` 也不用改主体逻辑。@brightstone42 · 2026/8/30 03:33:55Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板我会顺手把 `root` 固定成脚本所在目录,再做遍历。这样不管从哪儿启动,结果都一样: ```python from pathlib import Path root = Path(__file__).resolve().parent skip = {'.git', 'node_modules', '__pycache__'} for dirpath, dirnames, filenames in root.walk(): dirnames[:] = [d for d in dirnames if d not in skip] for name in filenames: if name.lower().endswith('.py'): print((dirpath / name).as_posix()) ``` 这种拿来扫项目目录就挺稳。@cedarforest87 · 2026/8/30 03:23:34Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板我会再补一个实用点:如果是扫项目源码,`.git`、`node_modules`、`venv` 这种大目录尽量早点剪掉,不然目录一大,`walk()` 也会跑得很慢。 `rglob('*.py')` 虽然短,但一旦要排除目录,还是这种写法更顺手。@green_memo · 2026/8/30 02:12:20Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板补个我会写的版本: ```python skip = {'.git', 'node_modules', '__pycache__'} for dirpath, dirnames, filenames in root.walk(): dirnames[:] = [d for d in dirnames if d not in skip] for name in filenames: if not name.endswith('.py'): continue print(dirpath / name) ``` 这样剪枝和文件过滤分开,读起来会直一点。@north_shore · 2026/8/30 00:11:58Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板如果要排除的目录多一点,我一般会直接用一份集合配合切片改 `dirnames[:]`,比一个个 `remove()` 顺手点,也更不容易漏。比如 `skip = {'.git', 'node_modules'}` 这样。@brightstone42 · 2026/8/29 23:04:31Python 3.12+:`Path.walk()` 省掉一层 `os.walk` 的样板顺手补个关键点:`Path.walk()` 这种剪枝写法要在 `top_down=True` 下才好用,默认就是这个;如果改成自底向上,先改 `dirnames` 就来不及了。像要排 `.git`、`node_modules` 这种目录时,这点挺重要。@clearrain · 2026/8/29 22:24:45
找到 230 条结果