我正在尝试建立一个环境,在这个环境中,vite的热重新加载可以通过traefik的反向代理获得。为此,我注意到有必要在vite设置vite.config.js
中添加一个证书。
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
// import mkcert from 'vite-plugin-mkcert';
export default defineConfig({
server: {
// https: true,
host: '0.0.0.0',
hmr: {
host: '0.0.0.0'
},
},
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
// mkcert()
],
});
以上代码对localhost正确工作。当我使用vite-plugin时,npm run dev
会出现以下错误
启动dev服务器时出现
错误:错误: EACCES:权限被拒绝,mkdir‘/root/..vite plugin’
我试着使用--unsafe-perm=true
--allow-root
选项安装软件包,但没有成功。
整个环境都在docker内部,其他包不存在相同的问题。我的容器使用根用户。
发布于 2022-09-25 00:59:17
以下列方式解决:
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import fs from 'fs';
export default defineConfig({
server: {
https: {
key: fs.readFileSync('./certs/local-key.pem'),
cert: fs.readFileSync('./certs/local-cert.pem'),
},
host: '0.0.0.0',
hmr: {
host: 'template.docker.localhost'
},
},
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
],
});
现在我不再需要这个包了,热重加载也适用于反向代理。
发布于 2022-11-01 02:37:15
包含没有http/https的主机,确保安装了mkcert。
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import react from '@vitejs/plugin-react';
import mkcert from 'vite-plugin-mkcert';
export default defineConfig({
plugins: [
mkcert(),
laravel({
input: 'resources/js/app.jsx',
}),
react(),
],
server: {
host:"testserver.dev",
port: 8000,
https:true,
},
});
设置之后,您需要使用https运行npm。
npm run dev -- --https
https://stackoverflow.com/questions/73841147
复制相似问题