当前位置: 首页 > 面试题库 >

在webpack中传递环境变量

松霖
2023-03-14
问题内容

我正在尝试将有角度的应用程序从gulp转换为webpack。在gulp中,根据NODE_ENV,我使用gulp-
preprocess替换html页面中的某些变量(例如,数据库名称)。使用webpack达到类似结果的最佳方法是什么?


问题答案:

有两种基本方法可以实现此目的。

定义插件

new webpack.DefinePlugin({
    'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
}),

请注意,这只会按原样替换匹配项。这就是字符串具有其格式的原因。您可能有一个更复杂的结构,例如那里的一个对象,但您明白了。

环境插件

new webpack.EnvironmentPlugin(['NODE_ENV'])

EnvironmentPluginDefinePlugin内部使用并映射环境值以通过它进行编码。Terser语法。

别名

或者,您可以通过别名模块使用配置。从消费者方面来看,它看起来像这样:

var config = require('config');

配置本身可能如下所示:

resolve: {
    alias: {
        config: path.join(__dirname, 'config', process.env.NODE_ENV)
    }
}

可以说process.env.NODE_ENVdevelopment。它将映射到./config/development.js那时。它映射到的模块可以这样导出配置:

module.exports = {
    testing: 'something',
    ...
};


 类似资料:
  • 我正在尝试将一个棱角分明的应用程序从gulp转换为WebPack。在gulp中,我使用gulp-preprocess替换html页面中的一些变量(例如,数据库名称),这取决于node_env。用webpack实现类似结果的最佳方法是什么?

  • 我需要在Dockerfile中传递环境变量,如下所示。我可以知道做这件事的有效方法吗。我尝试使用构建参数 但它没有用。 这是我的 Dockerfile 所以当我运行我的docker容器时,我相信我不想向它发送任何环境变量。 请指教。

  • 问题内容: 我必须从本地文件夹中的文件中读取一些属性。我需要在命令行中提供此文件路径。我给了它如下所述。但是有一个错误,它显示为 给出的命令是 有人可以帮我解决这个问题吗? 谢谢 问题答案: 尝试给出以下命令,

  • 问题内容: 如何在Vue中访问在运行时而不是在构建过程中传递到容器的环境变量? 堆栈如下: VueCLI 3.0.5 docker Kubernetes 在stackoverflow和其他地方提出了建议的解决方案,以使用.env文件传递变量(并使用模式),但这是在构建时被烘焙到docker映像中的。 我想在运行时将变量传递给Vue,如下所示: 创建Kubernetes ConfigMap(我正确了

  • 我在postman中有2个chanined请求,第一个执行GET以列出所有数据,然后根据返回的值设置环境变量。第二个请求尝试使用环境变量作为字段值的 POST。 请求1 的值为5 请求 2 带主体: 这可以通过Postman的GUI正常工作,但是当从命令行Newman运行时,当请求到达API时,的值是不是如预期的那样。 我执行了相同类型的替换,环境变量直接从返回的数据中设置 这部作品不是《邮递员》

  • 问题内容: 我正在尝试使用PowerShell将环境变量传递给Node.js,如下所示: 但是我在PowerShell中收到一个错误: 令牌“节点”意外的表达式或语句 问题答案: 首先设置环境变量,然后按以下方式运行您的应用程序: 您可以通过以下方式访问内部的环境变量 注意:PowerShell不直接支持命令范围的环境变量。上面的命令为该PowerShell会话设置环境变量。