浏览代码

Implement .env support for PORT property

stretch07 1 年之前
父节点
当前提交
06fc54b18e
共有 5 个文件被更改,包括 24 次插入4 次删除
  1. 1 0
      .env.example
  2. 4 1
      .gitignore
  3. 3 1
      dev-server.js
  4. 13 0
      package-lock.json
  5. 3 2
      package.json

+ 1 - 0
.env.example

@@ -0,0 +1 @@
+PORT=4000

+ 4 - 1
.gitignore

@@ -5,4 +5,7 @@ node_modules/
 license.config.json
 license-header.txt
 dist/
-.vscode/
+.vscode/
+.env
+# this is for jetbrain IDEs
+.idea/

+ 3 - 1
dev-server.js

@@ -2,9 +2,11 @@ const express = require("express");
 const { generateDevHtml, build } = require("./utils.js");
 const { argv } = require('node:process');
 const chalk = require('chalk');
+const dotenv = require('dotenv');
+dotenv.config();
 
 const app = express();
-let port = 4000; // Starting port
+let port = process.env.PORT ?? 4000; // Starting port
 const maxAttempts = 10; // Maximum number of ports to try
 const env = argv[2] ?? "dev";
 

+ 13 - 0
package-lock.json

@@ -11,6 +11,7 @@
       "devDependencies": {
         "chalk": "^4.1.0",
         "clean-css": "^5.3.2",
+        "dotenv": "^16.4.5",
         "express": "^4.18.2",
         "html-entities": "^2.3.3",
         "nodemon": "^2.0.22",
@@ -781,6 +782,18 @@
         "npm": "1.2.8000 || >= 1.4.16"
       }
     },
+    "node_modules/dotenv": {
+      "version": "16.4.5",
+      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz",
+      "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://dotenvx.com"
+      }
+    },
     "node_modules/ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",

+ 3 - 2
package.json

@@ -11,11 +11,12 @@
   "devDependencies": {
     "chalk": "^4.1.0",
     "clean-css": "^5.3.2",
-    "html-entities": "^2.3.3",
-    "webpack": "^5.88.2",
+    "dotenv": "^16.4.5",
     "express": "^4.18.2",
+    "html-entities": "^2.3.3",
     "nodemon": "^2.0.22",
     "uglify-js": "^3.17.4",
+    "webpack": "^5.88.2",
     "webpack-cli": "^5.1.1"
   },
   "scripts": {