bechir/vite-bundle

将 Vite.js 集成到您的 Symfony 应用程序中

安装: 9

依赖者: 0

建议者: 0

安全: 0

星星: 1

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0 2021-10-06 04:59 UTC

This package is auto-updated.

Last update: 2024-09-06 11:13:42 UTC


README

此包允许您通过使用 WebpackEncoreBundleViteFait 将 Vite 集成到您的 Symfony 应用程序中

安装

请确保已安装 Node 和包管理器 (Yarn)。

步骤 1:下载包

打开命令行,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本

$ composer require bechir/vite-bundle

步骤 2:启用包

然后,通过将其添加到项目 config/bundles.php 文件中注册的包列表中来启用该包

// config/bundles.php

return [
    // ...
    Bechir\ViteBundle\BechirViteBundle::class => ['dev' => true],
];

config/packages/bechir_vite.yaml 中添加包配置

bechir_vite:
  output_path: '%kernel.project_dir%/public/dist'

步骤 3:安装 ViteFait

# using yarn
yarn add --dev vite-fait
# using npm
npm install vite-fait --save-dev

用法

在根目录中创建 vite.config.js 文件,并在其中添加以下代码

const ViteFait = require('vite-fait');

ViteFait
  .setRoot('assets')
  .setOutputPath('../public/dist')
  .addEntry('app', './assets/app.js')
  .addEntry('admin', './assets/admin/app.js');

module.exports = ViteFait.getViteConfig()

package.json 中添加 vite-fait 脚本

{
  "scripts": {
    "build": "vite-fait build",
    "dev": "vite-fait dev",
  }
}

然后,使用 yarn buildnpm run build 运行您的第一次构建,它将在 public/dist 中生成 entrypoints.json 文件

{
  "entrypoints": {
    "app": {
      "js": [
        "/dist/app.7f38ab96.js"
      ],
      "css": [
        "/dist/app.c385b6b3.css"
      ]
    },
    "admin": {
      "js": [
        "/dist/admin.a88436ae.js"
      ],
      "css": [
        "/dist/admin.0e68df5b.css"
      ]
    }
  }
}

templates/base.html.twig 中添加 twig 函数

<html>
<head>
    {{ vite_entry_link_tags('app') }}
</head>
<body>
    <!-- html code -->
    {{ vite_entry_script_tags('app') }}
</body>
</html>

阅读 vite 文档 获取更多信息

使用插件

在阅读本节之前,请先阅读 如何使用 vite 插件

usePlugins 方法中放置您的插件

const fooPlugin = function() {
  return {
    name: 'vite-plugin-foo',
    configureServer() {
      console.log('foo');
    }
  }
}

ViteFait
  .usePlugins(fooPlugin()) // use array for multiple plugins: [fooPlugin(), barPlugin()]

待办事项

  • 添加测试
  • React 支持
  • Vue 支持
  • 文档