hnhdigital-os / laravel-php-elixir
提供基于PHP的Node.js Elixir的等效解决方案
Requires
- php: >=5.6.0
- hnhdigital-os/laravel-php-elixir-combine: ~1.0
- hnhdigital-os/laravel-php-elixir-copy: ~1.0
- hnhdigital-os/laravel-php-elixir-empty: ~1.0
- hnhdigital-os/laravel-php-elixir-exec: ~1.0
- hnhdigital-os/laravel-php-elixir-replace: ~1.0
- hnhdigital-os/laravel-php-elixir-revision: ~1.0
- hnhdigital-os/laravel-php-elixir-sass: ~1.0
- hnhdigital-os/laravel-php-elixir-watch: ~1.0
- symfony/yaml: ~3.0
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- illuminate/database: 4.*|5.*
- phpunit/phpunit: 5.*
- symfony/process: ~2.3
README
__________.__ ___________.__ .__ .__
\______ \ |__ ______\_ _____/| | |__|__ __|__|______
| ___/ | \\____ \| __)_ | | | \ \/ / \_ __ \
| | | Y \ |_> > \| |_| |> <| || | \/
|____| |___| / __/_______ /|____/__/__/\_ \__||__|
\/|__| \/ \/
提供Laravel框架预包装的基于Node.js的elixir的替代品。任务按照在配置文件中声明的顺序依次执行。您可以指定多个任务模块块。
此包由澳大利亚精品开发商H&H|Digital开发。访问我们的网站 hnh.digital。
安装前要求
此包需要ext-inotify,可以通过以下方式安装:
$ pecl install inotify
您可能需要启用此扩展。您可以使用以下命令(可能不适用于您的特定操作系统设置)。
$ echo "extension=inotify.so" | sudo tee /etc/php/7.1/mods-available/inotify.ini && sudo ln -s /etc/php/7.1/mods-available/inotify.ini /etc/php/7.1/cli/conf.d/20-inotify.ini
安装
通过composer
$ composer require-dev bluora/laravel-php-elixir ~2.0
通过编辑config/app.php启用服务提供者
'providers' => [ ... Bluora\PhpElixir\ServiceProvider::class, ... ];
使用方法
使用默认配置文件(.elixir.yml)运行命令。
$ php artisan elixir
使用自定义配置文件运行命令
$ php artisan elixir --config=***
运行文件夹监视器以在文件更改时自动使用默认配置文件(.elixir.yml)运行elixir。
$ php artisan elixir:watch
运行文件夹监视器以在文件更改时自动使用自定义配置文件运行elixir
$ php artisan elixir:watch --config=***
配置
此包的配置在位于您的基本目录的'.elixir.yml'或'vendor/bluora/laravel-php-elixir/src/.elixir.yml.example'中完成。
首先在配置文件中声明任务名称和类名称(这些模块默认安装)。
modules: combine: - Bluora\PhpElixirCombine\CombineModule copy: - Bluora\PhpElixirCopy\CopyModule empty: - Bluora\PhpElixirEmpty\EmptyModule exec: - Bluora\PhpElixirExec\ExecModule replace: - Bluora\PhpElixirReplace\ReplaceModule revision: - Bluora\PhpElixirRevision\RevisionModule sass: - Bluora\PhpElixirSass\SassModule
使用YAML文件的第一级列出任务,或者如果您需要在配置文件的不同位置声明多个任务模块,只需在任务前加上一个数字(任务的唯一标识)和井号。例如
copy: xxx: yyy 1#copy: zzz: aaa
如果您正在测试php-elixir,您可以通过在任务前加上感叹号来停止任务的运行。
!copy: xxx: yyy
选项
- dry-run - 运行脚本但不执行任何操作。
- verbose - 提供更多反馈,说明正在发生什么。
options: dry-run: true verbose: true
路径
路径允许您声明可以在其他任务中使用的路径常量。
paths: PATH_SASS: resources/assets/sass PATH_BOWER: bower_components PATH_PUBLIC_ASSETS: public/assets PATH_PUBLIC_BUILD: public/build PATH_RESOURCES: resources PATH_RES_ASSET_IMAGES: resources/assets/images
监视
监视配置项仅用于elixir:watch控制台命令。
watch: - PATH_RESOURCES?filter=!php
空
删除列出的路径中的所有文件和文件夹。
empty: - PATH_PUBLIC_ASSETS - PATH_PUBLIC_BUILD
Exec
执行指定的文件和参数。
exec: php: artisan inspire
SASS
处理并编译 *.scss 文件,并将其输出到指定的路径。
格式为:{源文件路径}: {目标文件路径}
sass: PATH_SASS + /app.scss: PATH_PUBLIC_ASSETS + /vendor/app.css
Combine
获取一个或多个文件的 内容并将它们合并到指定的文件中。
源文件夹可以通过单级或多级查找指定,并且可以根据扩展名过滤文件。
{DESTINATION_FILE}:
- {SOURCE_FILE}
- {SOURCE_FOLDER}
combine: PATH_PUBLIC_ASSETS + /vendor/jquery-combined.min.js: - PATH_PUBLIC_ASSETS + /vendor/jquery/jquery.min.js - PATH_PUBLIC_ASSETS + /vendor/jquery-ui/jquery-ui.min.js PATH_PUBLIC_ASSETS + /vendor/combined.js: - PATH_PUBLIC_ASSETS + /vendor/**?filter=js
Copy
从文件路径或文件夹路径复制文件到指定的文件夹或文件名。
可以配置文件夹路径来获取顶级目录使用 '/*',或者使用 '/**' 获取路径中的所有文件和文件夹。
可以使用标准的查询字符串格式添加更多配置。
- filter - 以逗号分隔的扩展名列表。
copy: PATH_BOWER + /jquery/dist/jquery.min.js: PATH_PUBLIC_ASSETS + /vendor/jquery/ PATH_RES_ASSET_IMAGES + /**?filter=png: PATH_PUBLIC_ASSETS + /images/
Replace
可以在文件或文件夹路径中替换特定的文本。
replace: PATH_PUBLIC_ASSETS + /vendor/vendor_name/styles.css: - ../img - vendor/vendor_name
Revision
为指定文件夹位置的文件提供版本控制。
可用的选项
- hash_length - 默认值是 8。
- minify - 默认值为 false。
- php_manifest - 生成 json 版本文件的 php 等价物。
{SOURCE_FOLDER}:
- {DESTINATION_FOLDER}
- {REVISION_MANIFEST_FILE}
- {QUERY_STRING_OPTIONS}
revision: PATH_PUBLIC_ASSETS: - PATH_PUBLIC_BUILD - PATH_PUBLIC_BUILD + /rev-manifest.json - hash_length=12&minify=true&php_manifest=true
Contributing
请参阅 CONTRIBUTING 了解详细信息。
Credits
License
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。