Reactjs 如何使用webpack dev中间件设置环境变量?

Reactjs 如何使用webpack dev中间件设置环境变量?,reactjs,express,webpack,environment-variables,webpack-dev-middleware,Reactjs,Express,Webpack,Environment Variables,Webpack Dev Middleware,我有一个webpack项目,它使用webpack开发中间件提供文件服务。这是服务器设置 const webpackMiddleware = require("webpack-dev-middleware"); const webpackHotMiddleware = require("webpack-hot-middleware"); const webpack = require("webpack"); const webpackCo

我有一个webpack项目,它使用webpack开发中间件提供文件服务。这是服务器设置

const webpackMiddleware = require("webpack-dev-middleware");
const webpackHotMiddleware = require("webpack-hot-middleware");
const webpack = require("webpack");
const webpackConfig = require("../webpack.config.js");
const compiler = webpack(webpackConfig);

//this enables routing
app.use(history());

app.use(
  webpackMiddleware(compiler, {
    noInfo: true,
    publicPath: webpackConfig.output.publicPath,
  })
);
app.use(
  webpackHotMiddleware(compiler, {
    path: "/__webpack_hmr",
    heartbeat: 10 * 1000,
  })
);
我安装了“dotenv”包,并在应用程序的根目录中创建了“development.env”。此网页包配置:

require("dotenv").config({ path: "development.env" });
plugins:[
      new webpack.DefinePlugin({
      "process.env.DB_URL": JSON.stringify(process.env.DB_URL),
      "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV),
    }),]
这是development.env:

NODE_ENV=development
DB_URL=mongodb+srv://myURL
仅定义节点_ENV。其他任何内容都返回未定义

console.log(process.env.DB_URL); // undefined
console.log(process.env.NODE_ENV);// development
我必须在服务器上施展魔法,但我不知道怎么做

我使用了命令行选项,它起了作用:

"dev": "  nodemon -r dotenv/config index.js --watch client"

但我仍然不明白为什么第一种方法不起作用。当我使用webpack dev server时,我的所有其他spa应用程序都是这样工作的。

你的网页配置有
AL
,而env文件有
DB\u URL
,也许你也应该在网页包中添加
DB\u URL
?您好。这是我的错误。很抱歉我一直在尝试不同的东西,我忘了清理你的网页配置有
AL
,而env文件有
DB\u URL
,也许你也应该在网页中添加
DB\u URL
?嗨。这是我的错误。很抱歉我一直在尝试不同的事情,但我忘了清理