NodeJS .env文件加载不带dotenv包

11dmarpk  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(121)

这是我第一次处理 typescript ,我不知道发生了什么。当我用命令yarn dev:server启动应用程序时,应用程序加载了.env文件中定义的环境变量,尽管我删除了dotenv包。

// package.json
{
  "name": "server",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev:server": "ts-node-dev --respawn --transpile-only src/index.ts",
    "typeorm": "npx ts=node ./nodemodules/typeorm/cli.js",
    "test": "NODE_ENV=test jest"
  },
  "devDependencies": {
    "@types/cors": "^2.8.10",
    "@types/express": "^4.17.11",
    "@types/jest": "^26.0.23",
    "@types/node": "^14.14.41",
    "@typescript-eslint/eslint-plugin": "^4.22.0",
    "@typescript-eslint/parser": "^4.22.0",
    "eslint": "^7.25.0",
    "eslint-config-node": "^4.1.0",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-prettier": "^3.4.0",
    "jest": "^26.6.3",
    "prettier": "^2.2.1",
    "supertest": "^6.1.3",
    "ts-node-dev": "^1.1.6",
    "typescript": "^4.2.4"
  },
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "pg": "^8.6.0",
    "reflect-metadata": "^0.1.13",
    "typeorm": "^0.2.32"
  }
}
// app.js

import "reflect-metadata";
import express, { Application } from "express";
import cors from "cors";

import "./database/connect";

import customerRoutes from "./app/routes/Customer";

interface IAppController {
  express: Application;
}

class AppController implements IAppController {
  express: Application;
  constructor() {
    this.express = express();

    this.middlewares();
    this.routes();
  }

  middlewares() {
    this.express.use(cors());
    this.express.use(express.json());
  }

  routes() {
    this.express.use("/customer", customerRoutes);

    this.express.get("/", (req, res) => {
      res.send("🔥 server up and running");
    });
  }
}

const app = new AppController().express;
export { app };

有没有可能我使用的某个软件包自动加载了环境变量?如果是,是否有可能禁用这一功能?

klh5stk1

klh5stk11#

我发现dotenv是包typeorm的依赖项。这就是为什么它会自动加载。

相关问题