我正在尝试使用Webpack和Docker在Web应用程序内使用服务人员。
我目前所做的一切都运行良好(服务人员,webpack配置,人员注册...)
实际上,我的应用程序是在Docker容器中运行的,在这个容器中,我可以启动Webpack构建来创建所有JS文件。
但是现在我希望能够与服务工作者一起使用webpack开发服务器和HMR。
为此,我使用了https://github.com/oliviertassinari/serviceworker-webpack-plugin,它可以正确地在manifest.json
然后,当我通过Web浏览器访问我的应用程序时,除了我的工作人员外,所有已建资产都被找到。
我在docker容器中使用(我使用webpack-encore)运行我的开发服务器
encore dev-server --hot --host 0.0.0.0 --port 8080
Run Code Online (Sandbox Code Playgroud)
要加载我的资产浏览器请求他们0.0.0.0:8080,但我的工人被注册localhost:8000,因此请求,因为工人所在与404错误失败0.0.0.0:8080/sw.js,而不是localhost:8080/sw.js。
我想知道是否有可能解决此问题并使我的服务工作者在docker容器上的webpack-dev-server内部工作。
我知道服务人员仅在侦听他们的范围,localhost:8000/*但对于我来说,webpack-dev-server是0.0.0.0:8080。
这就是为什么我问是否有可能更改此行为以使其起作用,以及是否有人已经存在此问题的原因。
谢谢
I'm trying to launch 2 nodejs app inside a Docker container using PM2, so I made a custom Dockerfile with all the projects config
FROM node:argon
RUN npm install pm2 -g --silent
VOLUME ./src/app:/usr/src/app
WORKDIR /usr/src/app
RUN git clone https://github.com/yoonic/atlas.git backend
RUN cd backend && \
npm i --silent && \
pm2 start npm --name "backend" -- run dev --no-daemon
RUN git clone https://github.com/yoonic/nicistore.git frontend
RUN cd frontend && \
npm i --silent && \
sed -i "s#api.atlas.baseUrl#http://localhost:8000/v1#" config/client/development.js && …Run Code Online (Sandbox Code Playgroud) 我正在使用 Bootstrap Vue 中的 Table,并且我试图在单击一行时显示行详细信息。
row-clicked正如文档所说,我使用了事件,但我没有找到任何带有toggleDetails方法的行详细信息。所以我什至不知道如何打开它以及toggleDetails从哪里来。
有没有办法用row.clicked事件打开这个详细信息行?
或者我应该使用另一种方法来做到这一点?
你有什么线索吗?
编辑
有一些代码可以更详细地说明我的问题,有我的表和详细信息行。
<b-table
v-if="items"
:items="items"
:fields="fields"
show-empty
striped
hover
responsive
empty-text="There is no messages to show"
class="col-sm-12 col-md-10"
@row-clicked="test"
>
<template
slot="message"
slot-scope="row"
>
{{ row.item.message }}
</template>
<template
slot="row-details"
slot-scope="row"
>
<code>{{ row.item.message }}</code>
</template>
</b-table>
Run Code Online (Sandbox Code Playgroud)
您可以看到row.clicked我在表上使用的事件,然后是我尝试打开行详细信息的方法。这是一个带有一些 console.log 的简单方法
methods: {
test(item, index, event) {
console.log(item, index, event);
},
},
Run Code Online (Sandbox Code Playgroud) 我在一个小 go 应用程序中使用 GORM 进行了 MySQL 查询。
我已经声明了我的domain结构
type Domain struct {
gorm.Model
Name string
...
}
Run Code Online (Sandbox Code Playgroud)
然后当我用这种方法用 GORM 向 MySQL 发送查询时。
func DomainInfos(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
w.WriteHeader(http.StatusOK)
var d Domain
config.DbConnection.Where("name = ?", vars["domain"]).Find(&d)
json.NewEncoder(w).Encode(d)
}
Run Code Online (Sandbox Code Playgroud)
当找不到域时,它会从我的结构定义中返回默认对象
{
{0 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC <nil>}
0
0
0
}
Run Code Online (Sandbox Code Playgroud)
所以我写了一些条件来手动返回一个空对象
if d.ID == 0 {
json.NewEncoder(w).Encode(make(map[string]string))
return
}
Run Code Online (Sandbox Code Playgroud)
当查询不返回任何内容时,GORM 是否可以直接返回一个空对象,以避免这种手动检查?
我有一个REST API POST请求使用的模板JSON文件.该文件包含此对象
{
"Subject": "template",
"Body": {
"ContentType": "HTML",
"Content": "template"
},
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Europe/Paris"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Europe/Paris"
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一个小函数来改变这个对象中的一些数据并将其保存到另一个调用的json文件中 jsonOutput.json
有改变数据的功能,这很好用.
function insertDatasJson (res) {
let fs = require('fs');
let base = require('../public/json/template.json');
base.Subject = 'f';
base.Body.Content = 'e';
base.Start.DateTime = '2016-11-13T08:30:00';
base.End.DateTime = '2016-11-13T17:30:00';
fs.writeFileSync('./public/json/output/jsonOutput.json', JSON.stringify(base, null, 4));
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试做同样的修改,但我有很多数据要修改(多个主题,多个内容和多个开始/结束日期)
我试图有这样的输出文件
[
{
"Subject": "1",
"Body": {
"ContentType": "HTML",
"Content": "1"
},
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Europe/Paris"
}, …Run Code Online (Sandbox Code Playgroud) docker ×2
go ×2
javascript ×2
node.js ×2
dockerfile ×1
ecmascript-6 ×1
go-get ×1
go-gorm ×1
json ×1
pm2 ×1
vue.js ×1
vuejs2 ×1
webpack ×1