关于package.json的scripts命令中使用单双引号的问题
为了给自己的react项目mock假数据,需要启动一个node服务器,为了方便,使用concurrently同时启动并监听前端server和mock server,但在启动的时候出现了问题。
问题
直接看我的scripts,
"start": "concurrently 'react-scripts start' 'json-server --watch ./mock/db.json -p 3001'",
为了防止双引号冲突,我是直接使用的单引号(非必要的时候,本人不喜欢使用转义),但是运行时出现了报错:
解决方法
其实原因就是单引号的问题,这种方式在scripts中不能生效。修改为转义双引号的方式:
"start": "concurrently \"react-scripts start\\" \"json-server --watch ./mock/db.json -p 3001\""
此时concurrently就可以正常工作了。
总结
官方demo也是用转义写的,所以初次尝试的时候还是得多看看说明文档,当然也算踩了个坑。
最后附上链接:github。