如何使用Vite构建可以在我的页面<head>中引用的资产文件?

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

我很困惑我该如何使用Vite。开发时没有问题,但当我想构建我的资产文件时,我不知道发生了什么。我已经习惯了 webpack 的时代,所有资源文件(.scss 和 .js)都被捆绑起来并输出为 app.css 和 app.js。我不确定我应该如何配置 Vite 来实现类似的目标,或者我是否应该尝试这样做。

我一直在尝试写如下内容:

    @if(app()->environment('local'))
        @vite(['resources/sass/app.scss', 'resources/js/app.js'])
    @else
        <link rel="stylesheet" href="/assets/stylesheet.css">
        <script src="/assets/app.js"></script>
    @endif

我的思考过程基本上是当应用程序不在本地时,它使用构建的资产文件,并且在开发过程中它使用 @vite[ ... ] 语句。

我感觉我的方法不是 Vite 应该使用的方式,但我完全不知道应该如何使用它。有人可以教我如何使用 Vite 吗?

laravel npm laravel-blade vite
2个回答
0
投票

我不确定您为什么在生产时使用另一种方法。 文档非常清楚:

配置好 Vite 入口点后,您只需在添加到应用程序根模板的

@vite()
<head>
Blade 指令中引用它们即可。
@vite
指令将自动检测Vite开发服务器并注入Vite客户端以启用模块热替换。在构建模式下,该指令将加载您已编译和版本化的资源,包括任何导入的 CSS。

所以,你必须始终使用:

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

需要时会自动输出

<link>
<script>
。您无需做任何其他事情。


0
投票

我认为您想将Vite资产发布到服务器,您需要运行以下命令:

放入头部:

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

运行命令:

npm run build

它将把资产构建到 public/assets/build 文件夹中,文件名如 app.xxxxxx.css 或 app.xxxxxx.js。

如果您使用 git 发布代码,则忽略文件中的“/public/build”和“/public/hot”。

© www.soinside.com 2019 - 2024. All rights reserved.