无法在 Vite 清单中找到文件:resources/sass/app.scss。 Laravel:10.6.2,同时使用 php artisan auth:ui

问题描述 投票:0回答:2

我已经使用 php artisan auth:ui 安装了新的 Laravel 项目当前版本 10.6.2 和基本的 AUTH 脚手架,它通过 vite 安装成功创建。但是当我运行该项目时,它显示错误“无法在 Vite 清单中找到文件:resources/sass/app.scss。” vite auth 配置

我检查了两次并尝试手动创建文件

  1. 清单
  2. vite.config.js
  3. 资源目录

删除供应商并更新作曲家

npm install --save-dev vite laravel-vite-plugin npm install --save-dev @vitejs/plugin-vue (也尝试 sass,bootstrap => 这会导致错误)

最后每次尝试后再次 npm run build 。

laravel manifest vite laravel-artisan laravel-authentication
2个回答
0
投票

要正确安装和编译 vite 包而不出现任何问题,您需要执行以下步骤:

1- 安装node.js(如果您已经安装了它,只需转到项目内的终端并给出命令:

  node -v

,如果能给出版本号,则表示:完成)。

2- 在您的设备上安装 npm(不用担心:如果您已成功安装了 Node.js,它将与 Node 一起安装,并在终端中测试该命令的类型:

  npm -v 

,如果能给出版本号,则表示:完成)。

3- 现在您需要开始使用 Vite 和 Laravel 插件,方法是在终端中输入下一个命令:

  npm install  , or just:  npm i 

并等待几秒钟,直到它给您一条消息说它已成功安装,然后打开文件 vite.config.js 并确保该文件包含: 2 个进口代码和 1 个出口代码 像这样:

 import { defineConfig } from 'vite';
 import laravel from 'laravel-vite-plugin';

 export default defineConfig({
    plugins: [
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: true,
        }),
    ],
});

4-在此步骤中,您将在视图文件中包含 vite 包,例如 home.blade.php 在 html 代码的头部

 <!doctype html>
 <head>
 {{-- ... --}}

 @vite(['resources/css/app.css', 'resources/js/app.js'])
 </head>

5-最后你需要在终端中使用以下命令运行 npm:

 npm run dev

 npm run build

请记住:每次在浏览器中运行并打开项目时,您都需要执行最后一步

祝你有美好的一天,祝你好运。


0
投票

你使用 rollupOptions 吗?我已经多次遇到这个错误,每次都是在代码中编写 rollupOptions 。就我而言,我不再使用它,见下文

  1. 在下面的示例中出现错误
    Unable to locate file in Vite manifest: resources/css/app.css
import { defineConfig, loadEnv } from 'vite';
import laravel from 'laravel-vite-plugin';
import { resolve } from 'path';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/js/app.js'
            ],
            refresh: true,
        }),
    ],
    build: {
        rollupOptions: {
          input: {
            app: resolve(__dirname, 'resources/js/app.js')
          },
          output: {
            entryFileNames: 'assets/[name].[hash].js',
            chunkFileNames: 'assets/[name].[hash].js',
            assetFileNames: 'assets/[name].[hash].[ext]'
          },
        },
      },
});
  1. 没有错误并且渲染效果如下:
import { defineConfig, loadEnv } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/js/app.js'
            ],
            refresh: true,
        })
    ]
});

这也适用于我的配置的下面的示例,该示例更广泛,并且使用插件并执行构建后的 bash/php 操作,这可能会启发您:

import { defineConfig, loadEnv } from 'vite';
import laravel from 'laravel-vite-plugin';
import shell from 'shelljs';
import { viteStaticCopy } from 'vite-plugin-static-copy';
import { normalizePath } from 'vite';
import path from 'node:path';

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/css/app.css',
                'resources/vendor/bootstrap/css/bootstrap.min.css',
                'resources/vendor/fontawesome-6.5.2/css/all.min.css',
                'resources/vendor/formvalidation/formValidation.min.css',
                'resources/vendor/bootstrap-sweetalert/sweet-alert.css',
                'resources/vendor/leaflet/leaflet.css',
                'resources/js/app.js'
            ],
            refresh: true,
        }),
        viteStaticCopy({
            targets:
            [
                {
                    src: normalizePath(path.resolve(__dirname, 'resources/downloads/**')),
                    dest: normalizePath(path.resolve(__dirname, 'public/build/downloads'))
                },
                {
                    src: normalizePath(path.resolve(__dirname, 'resources/documents/**')),
                    dest: normalizePath(path.resolve(__dirname, 'public/build/documents'))
                },
            ]
        }),
    ],
    assetsInclude: ['**/*.del', '**/*.4'],
    // Hook post-build
    postBuild() {
        shell.exec('php artisan clean:publicFolder');
    }
});

在 resources/js/app.js 中:

import '../css/app.css';
import '../vendor/bootstrap/css/bootstrap.min.css';
import '../vendor/fontawesome-6.5.2/css/all.min.css';
import '../vendor/formvalidation/formValidation.min.css';
import '../vendor/bootstrap-sweetalert/sweet-alert.css';
import '../vendor/leaflet/leaflet.css';

import '../vendor/jquery/jquery-3.7.1.min';
import '../vendor/bootstrap/js/bootstrap.bundle.min';
// etc.
© www.soinside.com 2019 - 2024. All rights reserved.