一个方便在Python中使用Node.js的工具库。
简体中文 | English
pip install py-node-managerfrom py_node_manager import NodeManager
# 创建NodeManager实例
# download_node=True 表示如果系统中没有Node.js则自动下载
# node_version指定要下载的Node.js版本
manager = NodeManager(download_node=True, node_version='18.17.0')
# 获取Node.js、npm和npx的路径
node_path = manager.node_path # 下载的Node.js路径,如果使用系统Node.js则为None
npm_path = manager.npm_path # npm路径
npx_path = manager.npx_path # npx路径
# 获取环境变量(如果使用下载的Node.js)
node_env = manager.node_env # 环境变量字典import subprocess
from py_node_manager import NodeManager
manager = NodeManager(download_node=True, node_version='18.17.0')
# 运行Node.js命令
result = subprocess.run(
[manager.npm_path, 'init', '-y'],
env=manager.node_env,
capture_output=True,
text=True
)
print(result.stdout)from py_node_manager import NodeManager
# 如果系统中没有Node.js将会抛出异常
manager = NodeManager(download_node=False, node_version='18.17.0')本项目使用pytest进行测试,测试覆盖率达到100%。
在conda环境中运行测试:
# 安装依赖
pip install -e .
pip install -r requirements-dev.txt
# 运行测试
pytest tests/ -v
# 运行测试并生成覆盖率报告
pytest tests/ --cov=py_node_manager --cov-report=term-missingtests/test_node_manager.py- NodeManager类的完整测试套件tests/conftest.py- pytest配置tests/__init__.py- 包初始化文件
所有代码路径都经过测试,包括:
- 正常执行路径
- 错误处理场景
- 平台特定行为
- CLI模式日志
- 缓存的Node.js使用