ReferenceError:进程未在 firebase-messaging-sw.js 中定义
Posted
技术标签:
【中文标题】ReferenceError:进程未在 firebase-messaging-sw.js 中定义【英文标题】:ReferenceError: process is not defined at firebase-messaging-sw.js 【发布时间】:2021-01-15 22:27:24 【问题描述】:我需要使用 在 ReactJs 公用文件夹中的 firebase-messaging-sw.js 中的 .env 文件。 .env 文件位于项目根文件夹中,我需要在 firebase-messaging-sw.js 中使用它,而无需将 .env 移动到另一个位置。但是当在 firebase-messaging-sw.js 中调用环境变量时。我在 ReactJs
中收到参考错误“在 firebase-messaging-sw.js 中未定义进程”这是我在 firebase-messaging-sw.js 中的代码。
importScripts('https://www.gstatic.com/firebasejs/7.8.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.8.1/firebase-messaging.js');
const config =
apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL,
projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_FIREBASE_APP_ID,
;
firebase.initializeApp(config);
const messaging = firebase.messaging();
有什么办法可以解决我的问题吗?
【问题讨论】:
React JS 是前端。process.env
对象在 Node JS 环境中提供。但是,您可以配置 Webpack 以使用 dotenv
包从 process.env
加载数据。但是当你构建 react 项目时,值将被替换为实际值,这样任何人都可以使用浏览器开发工具看到这些键。
我的 .env 文件也在 src 文件夹 (root/src) 中,那么没有办法解决这个问题。
【参考方案1】:
firebase-messaging-sw.js
在客户端执行,这就是为什么您无法访问任何process
全局变量的原因。
【讨论】:
我的 .env 文件也在 src 文件夹 (root/src) 中,那么没有办法解决这个问题。以上是关于ReferenceError:进程未在 firebase-messaging-sw.js 中定义的主要内容,如果未能解决你的问题,请参考以下文章
ReferenceError 'model' 未在 mongoose 中定义
ReferenceError: primordials 未在 node.js 中定义
ReferenceError:数据未在exports.action中定义
ReferenceError:FlatListItemSeparator 未在 React Native 中定义
UnhandledPromiseRejectionWarning:ReferenceError:TextEncoder 未在 NextJS 12 中定义
UnhandledPromiseRejectionWarning:ReferenceError:TextEncoder 未在 NextJS 12 中定义