【发布时间】:2019-05-17 00:35:48
【问题描述】:
故事
我正在开发 AWS Lambda 函数并使用 webpack 编译代码。
我已经阅读了一些文章,似乎process.env 变量在编译过程中被自动替换。虽然很酷,但我想禁止这种行为。
为什么?
因为我使用 AWS Lambda 仪表板传递环境变量。
Webpack 配置
const nodeExternals = require('webpack-node-externals')
const webpack = require('webpack')
const path = require('path')
module.exports = {
target: 'node',
entry: path.resolve(__dirname, 'index.ts'),
externals: [nodeExternals()],
devtool: 'inline-source-map',
mode: 'production',
module: {
rules: [{
test: /\.tsx?$/,
use: [{
loader: 'ts-loader',
options: {
experimentalWatchApi: true,
},
}],
}]
},
plugins: [],
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
output: {
filename: 'index.js',
libraryTarget: 'commonjs',
path: path.resolve(__dirname, 'dist')
}
}
问题
是否可以禁止在webpack 编译期间替换process.env 变量的行为?
如果是请帮我实现这个效果。
【问题讨论】:
-
我意识到这对你没有帮助(而且我迟到了一年),但是在我的配置中添加
target: 'node'为我解决了这个问题,所以更奇怪的是你的不起作用. -
在 prod 模式下,它对我不起作用
-
optimization.nodeEnv设置为false应该可以工作
标签: node.js typescript webpack aws-lambda webpack-4