如何在 package.json scripts 里使用 .env 的环境变量?

有多个fork的项目,只是 --port 不一样,如:

  "scripts": {
    // 项目1
    "android": "react-native run-android --port=8081", 
    // 项目2
    // "android": "react-native run-android --port=8082",
    // 项目3
    // "android": "react-native run-android --port=8083",
    // ....
  },

我希望把 --port 抽离出来,结果如下:

  "scripts": {
    "android": "react-native run-android --port=${port}", 
  },

项目1:

// .env
port = 8081

项目2:

// .env
port = 8082

项目3:

// .env
port = 8083

请问如何做到这种效果呢?

阅读 4.6k
2 个回答

试试 :

// package.json
"scripts": {
    "android": "react-native run-android --port=${process.env.port}", 
},


// .env
# just a flag
port = 8083

在代码里面获取script里的参数倒是可以,反过来没试过。看题主想要解决什么问题,如果只是想保证端口不冲突,可以使用portfinder之类的库,检查端口是否被占有,动态获取端口

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题