关于package.json的scripts命令中使用单双引号的问题

2019年07月04日Web前端

为了给自己的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