

更新 :playlist-converter.me已售出,所有链接现在为playlist-downloader.com。
最近,在开发新的播放列表转换器前端时,我需要一种快速简便的解决方案来编译资产(编译Sass文件,减少用于生产的js代码…等)。 但是,由于我使用的是Twig的模板引擎,因此我还需要一个可以与其集成的解决方案。
我想到的第一件事是:
像Laravel那样做…
经过几次Google搜索,我发现了这一点: Laravel Mix ,以前是Elixir,这是Laravel使用的Webpack的PHP API包装器,使资产编译变得异常简单。
现在的问题是:如何在非Laravel项目中使用它? 好吧,这就是我如何做到的。
最初设定
首先,如果尚未定义,请初始化一个NPM项目。 为此,您将需要全局安装Node和NPM。
cd ProjectFolder/
npm init -y
npm i laravel-mix --save-dev
cp -r node_modules/laravel-mix/setup/** ./
那应该给你
- node_modules /(如果您使用的是Git for VCS,请不要忘记将其添加到.gitignore中)
- package.json
- webpack.config.js
- webpack.mix.js
接下来,您需要配置一些NPM实际的构建脚本,有关此(以及更多)的说明可以在Mix的Github安装选项中找到。
添加树枝支持
现在,如果我们要使用Laravel-mix的缓存清除解决方案(向已编译资产添加哈希以强制浏览器更新缓存,那么app.js可能会变成app.b2328beb0372c051d06d.js 。)我们需要一种获取方法新生成的资产名称,并将其添加到我们的HTML中。
我试图查找一些已经进行的Twig扩展,这使我想到了这个仓库:Elixir-twig-extension。
但是,自2016年12月6日以来未进行过更新。因此,使用Github fork的魔术,我重新编写了自己的扩展名并命名为…等待它.. Laravel-Mix Twig扩展名。
安装扩展
您可以简单地使用Composer:
composer require stormiix/laravel-mix-twig-extension:dev-master
注册扩展
使用Stormiix \ Twig \ Extension \ MixExtension;
$ mix =新的MixExtension(
$ publicDir,//绝对公共目录
$ manifestName //清单文件名(默认值为'mix-manifest.json')
);
$ twig-> addExtension($ mix);
使用扩展
最初发表于 Anas Mazouni 。