📜  安装 webpack encore - CSS (1)

📅  最后修改于: 2023-12-03 15:25:07.650000             🧑  作者: Mango

安装 webpack encore - CSS

如果您正在使用 Symfony 框架,那么很有可能您需要安装 webpack encore,这是一个用于打包和管理前端资源的工具。这里我们介绍如何使用 webpack encore 来处理 CSS 文件。

安装依赖

在开始之前,我们需要先安装一些依赖。让我们打开终端,跳转到 Symfony 项目的根目录并运行以下命令:

# 使用 composer 安装依赖
composer require symfony/webpack-encore-bundle

# 安装 node.js
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

# 安装 yarn
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install -y yarn
创建 CSS 文件

我们将创建一个名为 app.css 的文件,它将存储网站的全局样式。在您的 Symfony 项目根目录中创建一个名为 assets/css 的目录,并在其中创建一个名为 app.css 的文件:

mkdir -p assets/css
touch assets/css/app.css

接下来,打开 app.css 文件并添加一些 CSS 样式(例如,在这个例子中我们将所有 h1 元素的字体颜色设置为红色):

h1 {
  color: red;
}
创建 webpack 配置文件

使用 webpack encore,您可以通过编写简单的 JavaScript 代码自定义 CSS(以及其他依赖关系)的打包过程。让我们首先创建 webpack.config.js 文件:

touch webpack.config.js

接下来,在我们的 webpack.config.js 文件中,引入 webpack 和 webpack-encore 并定义一个基本的 webpack 配置(此处我们只需要简单地指定输入和输出文件的位置):

const Encore = require('@symfony/webpack-encore')

Encore
  .setOutputPath('public/build/')
  .setPublicPath('/build')
  .addEntry('app', './assets/css/app.css')

module.exports = Encore.getWebpackConfig()

在上面的代码中,我们定义了一个名为 app 的入口,该入口指向我们刚刚创建的 app.css 文件。使用给定的路径,Webpack 把 app.css 编译到 public/build/ 目录。

编译我们的文件

在终端中,运行以下命令来编译您的 assets:

yarn install
yarn encore dev

这将执行两个操作:

  1. 安装所有 package.json 文件定义的依赖项;
  2. 编译我们的 assets 并输出到 public/build/ 目录。

此处我们使用 yarn encore dev 命令来编译所有的 assets 文件。此命令会在 /build 目录下生成所有相关的文件。如果您向浏览器输出 CSS 文件,您将需要添加引用 /build/app.css 的标记。

例如,如果您已经定义了一个将渲染 HTML 页面的 Twig 模板,您可以使用以下代码片段信进入 HTML 文档的头部来引用CSS文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Title</title>
    <link href="{{ asset('build/app.css') }}" rel="stylesheet">
</head>
<body>
{% block body %}
{% endblock %}
</body>
</html>

这样,我们通过 webpack encore 成功地创建了 app.css 文件,并成功地将其编译为一个可部署的资源。