infotechnohelp/package-loader

PHP辅助工具,用于加载前端包

1.0.1 2019-07-28 10:20 UTC

This package is auto-updated.

Last update: 2024-09-29 00:16:57 UTC


README

`composer require infotechnohelp/package-loader'

基本用法

假设你已经安装了webroot/node_modules中的jquery

use PackageLoader\PackageLoader;

$npm = new PackageLoader(\Cake\Routing\Router::url('/') . 'node_modules/');

echo $npm->script('jquery/dist/jquery.min');

使用映射的基本用法

use PackageLoader\PackageLoader;

$npm = new PackageLoader(\Cake\Routing\Router::url('/') . 'node_modules/', CONFIG . 'npm-map');

echo $npm->map()->scripts();

映射结构

config/npm-map.json

{
  "js": {
    "jquery": "jquery/dist/jquery.min",
    "api-client": "@infotechnohelp/api-client/src/index"
  },
  "css": {
    ...
  }
}

添加所有脚本

echo $npm->map()->scripts();

只添加提供的脚本

echo $npm->map()->scripts(['jquery']);

添加所有脚本(除了提供的脚本)

echo $npm->map()->scripts(['jquery'], true);

子包

映射结构

{
  "js": {
    "jquery": "jquery/dist/jquery.min",
    "auth-api": {
      "login": "cakephp-auth-api-client/src/login",
      "logout" : "cakephp-auth-api-client/src/logout"
    }
  }
}

添加所有脚本

echo $npm->map()->scripts();

只添加提供的脚本

echo $npm->map()->scripts(['jquery', 'auth-api:login']);

添加所有脚本(除了提供的脚本)

echo $npm->map()->scripts(['auth-api:logout'], true);

(结果相同,仅加载jquerylogin脚本)

加载样式表

映射结构

{
  "css": {
    ...
  }
}

添加特定的样式表

echo $npm->stylesheet('path-inside-node_modules');

添加所有样式表

echo $npm->map()->stylesheets();

与脚本相同的工作方式(仅包括和排除条件)