javascript - Webpack DefinePlugin 没有在 ServiceWorker 中定义变量
问题描述
我正在使用 WebpackDefinePlugin
在我的 Service Worker 中定义一个变量,就像这样
// webpack.config.js
const webpack = require("webpack");
// I tried sending a string as '"test"' with no luck aswell
plugins: [
new webpack.DefinePlugin({
"API_URL": process.env.VUE_APP_API_ROOT_URL
})
]
// My Service Worker
workbox.setConfig({
debug: false,
});
workbox.precaching.precacheAndRoute([]);
workbox.routing.registerRoute(
/\.(?:png|gif|jpg|jpeg|svg)$/,
workbox.strategies.staleWhileRevalidate({
cacheName: 'images',
plugins: [
new workbox.expiration.Plugin({
maxEntries: 3,
maxAgeSeconds: 1 * 24 * 60 * 60, // 1 day
}),
],
}),
);
console.log(API_URL);
// outputs: ReferenceError: API_URL is not defined
我无法访问我的服务人员内部的环境变量,这个解决方案是否可行?
// registerServiceWorker.js
/* eslint-disable no-console */
import { register } from 'register-service-worker'
if (process.env.NODE_ENV === 'production') {
register(`${process.env.BASE_URL}service-worker.js`, {
ready () {
console.log("ready")
},
registered () {
console.log('Service worker has been registered.')
},
cached () {
console.log('Content has been cached for offline use.')
},
updatefound () {
console.log('New content is downloading.')
},
updated () {
console.log('New content is available; please refresh.')
},
offline () {
console.log('No internet connection found. App is running in offline mode.')
},
error (error) {
console.error('Error during service worker registration:', error)
}
})
}
解决方案
推荐阅读
- python - 创建一个 python 桌面应用程序来导航和查看 S3 文件而不使用 aws 凭据
- loops - 保留事件前后连续 5 年出现的观察结果
- php - 为什么我在 php 中使用查询选择时有 2 个值?
- c++ - 使用 Cmake 将 waLBerla 链接到我自己的代码
- amazon-s3 - Gatsby watchMode 和 overlayDrafts 在 S3 静态网站上不起作用
- r - dim(data)[-1] 和 dim(data)[1] 有什么区别
- javascript - React Navigation V6 中的奇怪行为
- mongodb - MongoTypeConversionException:即使显式架构不包含 NullTypes,也无法使用 Mongo Spark 连接器将 STRING 转换为 NullType
- python - Kivy:防止开关在按下时翻转
- c# - .NET 5 HttpClient 无法获取 html 内容页面 - http 500