如何配置 Vite 以访问公共文件夹之外的文件?

How can i config Vite to access files outside public folder?

提问人:jpesa 提问时间:8/29/2023 最后编辑:jpesa 更新时间:8/29/2023 访问量:195

问:

我有这个文件结构:

  • 我的项目
    • 应用程序
    • 启动
    • 配置
    • 数据库
    • node_modules
      • pdfjs-dist
          • PDF格式.js
    • 公共
      • 上传
        • 文件
          • solution_12.pdf
    • 资源

有人可以帮我知道如何通过配置 Vite 来访问 pdf.js 吗?

我尝试过的:

在 vite.config.js 中,在导出默认 defineConfig 时:

plugins: [
        laravel({
            input: [
                'node_modules/pdfjs-dist/build/pdf.js'
            ],
            refresh: true,
        }),
    ],

我在我的 app.blade 中使用了@vite.php:

@vite([
    'node_modules/pdfjs-dist/build/pdf.js'
    ])

我收到了以下错误: 无法在 Vite 清单中找到文件:node_modules/pdfjs-dist/build/pdf.js。

有人可以向我解释一下吗?

PHP Laravel 文件 URL

评论


答:

0赞 CJHolowatyj 8/29/2023 #1

我从你的问题中看到你似乎在使用 Laravel(很好,因为这也是我熟悉的)。

我建议查看 Laravel 文档,特别是 vite 的配置,这些配置是新安装的 Laravel 的开箱即用。通过遵循他们指定的目录约定,您将通过尝试打破他们的模式来避免无休止的头痛。查看 Laravel 文档的以下部分将是一个很好的起点: https://laravel.com/docs/10.x/vite#main-content

在一个理想的世界里,你会遵循拉拉维尔认为你会遵循的相同惯例......也就是说,您的项目有一个文件夹,您通常将项目的 JavaScript 存储在该文件夹中(例如)。resources/jsapp.js

只要您将 javascript 文件导入应用程序中需要的任何位置,最好的解决方案可能是用于 Vite 的“输入”,并在 Vite blade 指令中引用它(如 )。然后,Vite 会在应用程序需要时导入该依赖项。resources/js/app.jsresources/js/app.js

# Your vite.config.js excerpt would look like:

plugins: [
    laravel({
        input: [
            'resources/js/app.js'
        ],
        refresh: true,
    }),
],

# Your @vite blade directive would look like:

@vite(['resources/js/app.js'])

# Your import call (wherever you're using this dependency) might look like:

import 'pdfjs-dist/build/pdf.js';

希望对您有所帮助!