首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EACCES:拒绝许可,mkdir‘/root/..vite plugin-mkcert’

EACCES:拒绝许可,mkdir‘/root/..vite plugin-mkcert’
EN

Stack Overflow用户
提问于 2022-09-24 23:17:22
回答 2查看 142关注 0票数 0

我正在尝试建立一个环境,在这个环境中,vite的热重新加载可以通过traefik的反向代理获得。为此,我注意到有必要在vite设置vite.config.js中添加一个证书。

代码语言:javascript
运行
复制
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内部,其他包不存在相同的问题。我的容器使用根用户。

EN

回答 2

Stack Overflow用户

发布于 2022-09-25 00:59:17

以下列方式解决:

代码语言:javascript
运行
复制
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,
        }),
    ],
});

现在我不再需要这个包了,热重加载也适用于反向代理。

票数 0
EN

Stack Overflow用户

发布于 2022-11-01 02:37:15

包含没有http/https的主机,确保安装了mkcert。

代码语言:javascript
运行
复制
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。

代码语言:javascript
运行
复制
npm run dev -- --https
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73841147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档