【发布时间】:2020-06-12 14:30:10
【问题描述】:
我创建了一个使用 Rails 和 React 前端的应用程序 (rails new my-app --webpack=react)
我以前曾单独使用过 Rails 和 React,但从未以这种方式集成过。
由于该应用程序在 rails s 上提供服务,我的理解是这本质上是作为一个渲染 React 组件的 rails 应用程序工作的,所以我相信环境变量将在 config/application.yml 中定义,而不是在 @ 987654327@,但我都尝试过,但无法在 React 组件中访问它们
我尝试过的
-
.env中的变量和application.yml -
以 REACT_APP 为前缀
-
将变量硬编码到 webpack 配置中
我正在运行rails server 和 ./bin/webpack-dev-server,并在启动服务器之前运行"webpack --config webpack.config.js"。
我的 webpack.config.js
const Dotenv = require('dotenv-webpack');
const webpack = require('webpack');
const path = require('path');
module.exports = {
entry: path.resolve(__dirname, '') + '/app/javascript/packs/index.jsx',
plugins: [
new Dotenv(),
new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORTS_HTML5: true,
TWO: '1+1',
'typeof window': JSON.stringify('object'),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
'process.env.REACT_APP_LAST_FM_API_KEY': JSON.stringify('myApiKeyfs89fs08a0')
})
],
module: {
rules: [
{ test: /\.jsx$/, use: {loader:'babel-loader'} },
{ test: /\.js$/, use: {loader:'babel-loader'} }
]
},
node: {fs:"empty"},
output: {
publicPath: '/'
}
};
【问题讨论】:
标签: ruby-on-rails reactjs webpack