在 Windows 系统 下直接使用了 Linux/macOS 的环境变量设置语法 PLATFORM=android
一、报错原因
由于开发这个项目的同事,使用电脑的操作系统是macOS。所以才会出现这个错误,因为我是在 Windows 系统 下直接使用了 Linux/macOS 的环境变量设置语法 PLATFORM=android(
项目根目录下的 package.json
文件,找到 scripts
部分,检查 test:android
的定义)
,而 Windows 不支持这种语法。
二、解决方案
cross-env 是一个解决跨平台环境变量设置问题的工具,让你可以在 package.json 脚本中统一设置环境变量,无需区分 Windows、Linux/macOS。以下是详细步骤:
步骤 1:安装 cross-env
在项目根目录下运行:
npm install --save-dev cross-env
或使用 yarn:
yarn add -D cross-env
步骤 2:修改 package.json 脚本
找到 scripts 中的 test:android,将原来的:
json "test:android": "npm run build && PLATFORM=android node --experimental-vm-modules node_modules/.bin/jest --config dist/jest.config.js"
修改为👇:
json "test:android": "npm run build && cross-env PLATFORM=android node --experimental-vm-modules node_modules/jest/bin/jest.js --config dist/jest.config.js"
修改点说明:
1、用 cross-env 替换原来的 PLATFORM=android,解决 Windows 兼容性问题。
2、将 node_modules/.bin/jest 改为 node_modules/jest/bin/jest.js,避免 Windows 执行 Unix 脚本报错。
步骤 3:保存并运行测试
1、保存 package.json。
2、运行命令: bash npm run test:android 现在应该能正常启动测试,不再报环境变量或脚本兼容性错误。