如何正确运行React-Relay的relay-compiler解决npm start启动报错问题
问题原因
你收到missing script: relay-compiler报错的核心原因是package.json的scripts配置逻辑错误:
npm run仅能执行scripts字段中自定义的脚本命令,而relay-compiler是你安装在项目node_modules中的可执行依赖,不属于自定义脚本范畴,无法通过npm run直接调用- 脚本末尾的
$@是类Unix系统的参数传递语法,Windows系统下无法识别,也可能引发额外报错
修复方案
直接修改package.json中的relay脚本配置即可,修改后的完整scripts片段如下:
{ ... "scripts": { ... "start": "npm run relay && react-scripts start", "build": "npm run relay && react-scripts build", "relay": "relay-compiler --schema schema.graphql --src ./src/ --watchman false" ... }, ... }
说明:npm执行自定义脚本时,会自动将
node_modules/.bin目录加入临时环境变量,直接写relay-compiler就能调用本地安装的依赖。如果调用失败,也可以将上述relay脚本内容替换为npx relay-compiler --schema schema.graphql --src ./src/ --watchman false,通过npx主动寻址本地依赖。
验证步骤
- 确认项目根目录存在
schema.graphqlschema文件,避免后续执行报错 - 先执行
npm run relay测试编译逻辑是否正常 - 再执行
npm start启动项目即可
内容的提问来源于stack exchange,提问作者Chong Lip Phang
相关产品推荐
相关产品推荐

