Kal*_*lly 12 fs node.js dotenv
突然,在创建反应生产版本时,我收到此错误。
> safe-courier@0.1.0 build
> react-scripts build
Creating an optimized production build...
Failed to compile.
Module not found: Error: Can't resolve 'fs' in '/workspace/safe-courier/client/node_modules/dotenv/lib'
Run Code Online (Sandbox Code Playgroud)
我在网上搜索过,发现类似的案例,但框架不同,但对于这个问题都没有帮助。
我尝试卸载 dotenv 并再次重新安装,但出现相同的错误。我不确定 fs 模块是 Nodejs 的一部分并与其捆绑在一起可能会出现什么问题
小智 32
为了解决这个问题:
您的 React 应用程序不需要 dotenv。
小智 15
我解决了同样的问题;
npm install dotenv-webpack --save-dev.env文件env变量为REACT_APP_YOURVARIABLE=itsvalue
Run Code Online (Sandbox Code Playgroud)
const Dotenv = require('dotenv-webpack');
module.exports = {
plugins: [
new Dotenv()
]
}
Run Code Online (Sandbox Code Playgroud)
.env然后无论你想在write中使用变量process.env.REACT_APP_YOURVARIABLE
Run Code Online (Sandbox Code Playgroud)
无需导入dotenv。它已经完成了webpack.config.js
1- 正如 St\xc3\xa9phane Sulikowski 已经提到的,不需要使用dot-env在 React 项目中使用
为什么?
\n\n\n“dot-env”使用了一些仅受nodejs支持但不被“浏览器引擎”支持的模块,如fs、os等。React-code-bundle在浏览器中运行,而浏览器不支持模块“fs”,因此如果任何模块引用“fs”模块将得到相同的错误。
\n
\n\nReactjs 有一些内置支持来使用存储在 a 中的环境变量
\n.env文件中的环境变量,并以REACT_APP_
2-如果由于某种原因必须使用它,请使用“env-cmd”
\nnpm install env-cmd\nRun Code Online (Sandbox Code Playgroud)\n3-创建特定于环境的 .env 文件,例如.env.localOR.env
4- 在您的“特定环境”中或.env文件中,添加以以下内容开头的变量REACT_APP_
\n\nREACT_APP_API_BASE_URL="http://localhost:4000"
\n
5-在代码文件中使用这些环境变量\n例如 console.warn (process.env.REACT_APP_API_BASE_URL)
6-可选......配置package.json,如下所示
\n...
\n"scripts": {\n "start": "env-cmd -f .env.local react-scripts start",\n "build:staging": "env-cmd -f .env.staging react-scripts build",\n "build:production": "env-cmd -f .env.production react-scripts build",\n "test": "react-scripts test",\n "eject": "react-scripts eject"\n }\nRun Code Online (Sandbox Code Playgroud)\n注意 - 当您在文件中添加新变量时.env ....,您必须运行npm startOR 相关...
| 归档时间: |
|
| 查看次数: |
27781 次 |
| 最近记录: |