我想在api调用的前端更改api的域名。在开发时,我想要一个localhost:xxxx域和一个用于登台和生产的独立域。现在,默认的Rails webpack dev服务器在.env
对象上公开了一个空的process
键。
我已尝试在bin/webpack-dev-server
中手动传递此配置,如下所示:
Dir.chdir(APP_PATH) do
exec "NODE_PATH=#{NODE_MODULES_PATH} #{WEBPACK_BIN} --progress --color " \
"--config #{DEV_SERVER_CONFIG} NODE_ENV=development #{ARGV.join(" ")}"
end
我还尝试直接在.env
添加config/shared.js
对象,如下所示:
new webpack.EnvironmentPlugin(JSON.parse(JSON.stringify(Object.assign(env, { 'NODE_ENV': process.ev)))),
这两种方法都不会修改.env
对象。
想法?
解决方案
使用webpack作为传递环境变量的方法。使用良好的旧Rails环境在window
对象上分配环境变量。
答案 0 :(得分:1)
我能够使用webpack environment plugin:
来实现这一目标// config/webpack/development.js
const webpack = require('webpack')
const environment = require('./environment')
const config = environment.toWebpackConfig()
config.plugins = (config.plugins || []).concat([
new webpack.EnvironmentPlugin([ 'SECRET_KEY' ])
])
module.exports = config
在您的应用中,您应该能够访问process.env中的SECRET_KEY
:
console.log(process.env.SECRET_KEY)
希望有所帮助!