就是这样!这将写进了你所有的资产公共/资产/目录,连同几的JSON文件importmap可以呈现闪电快。

但要确保你的网站性能,确保您的web服务器(或代理)运行HTTP / 2,是压缩你的资产和设置长寿Expires头信息。看到优化为更多的细节。

ob直播appCloudflare,它会自动为您做这些事情:

  • 使用HTTP / 2:您的web服务器必须运行HTTP / 2(或HTTP / 3)所以浏览器可以并行下载资产。HTTP / 2盒自动启用,可以激活Nginx和Apache。或者,通过服务代理网站像Cloudflare,会自动启用HTTP / 2给你。ob直播app
  • 压缩你的资产:您的web服务器(例如,使用gzip压缩)你的资产(JavaScript、CSS图像)之前将它们发送到浏览器。这是球童,可以激活自动启用Nginx和Apache。或者,通过服务代理网站像Cloudflare,会自动压缩你的资产。ob直播appCloob直播appudflare,你也可以启用汽车使变小进一步压缩你的资产(例如删除空白和注释从JavaScript和CSS文件)。
  • 设置长寿Expires头信息:您的web服务器应该设置长寿Expires头信息在你的资产。因为AssetMapper组件包括一个版本散列在每个资产的文件名,您可以安全地设置Expires标题在未来很长一段时间(如1年)。这不是自动在任何web服务器,但是可以很容易地启用。

一旦你做了这些事情,你可以使用一个工具灯塔验证你的网站的性能!

资产/ app.js进口。/ duck.js
  • 资产/ duck.js进口引导
  • 当浏览器下载页面,出现这种情况:

    1. 浏览器下载资产/ app.js;
    2. 然后看到了。/ duck.js导入和下载资产/ duck.js;
    3. 然后看到了引导导入和下载资产/ bootstrap.js

    而不是并行下载所有3个文件,浏览器必须下载一个接一个,因为它发现它们。这是会对性能产生影响。为了解决这个问题,importmap.php,添加一个预加载关键应用程序指向的条目资产/ app.js文件。实际上,这应该已经完成:

    1 2 3 4 5 6 7 8
    / / importmap.php返回(“应用程序”= > [“路径”= >“app.js”,预加载的= >真正的),/ /……];

    由于这,AssetMapper组件将呈现一个“预”标签页面上资产/ app.js任何其他的javascript文件,它使用相对路径(即从进口。/< /code>或. . /):

    1 2
    <链接rel=“预”href=“/资产/ app.js”作为=“脚本”><链接rel=“预”href=“/资产/ duck.js”作为=“脚本”>

    这告诉浏览器立即开始下载这两个文件,尽管它还没有见过进口声明为资产/ duck.js

    你也会想预加载引导,你可以以同样的方式:

    1 2 3 4 5 6 7 8
    / / importmap.php返回(/ /……“引导”= > [“路径”= >“……”,预加载的= >真正的]];

    请注意

    如上所述,当你预加载资产/ app.js,AssetMapper组件找到所有的JavaScript文件,它使用进口相对路径和预载。然而,它并不目前这样做当你导入“包”(如引导)。这些包已经在你的生活importmap.php处理文件,所以他们的预加载设置明确的文件。

    优化为更多的细节。

    优化为更多的细节。

    进口声明支持在所有现代浏览器,但AssetMapper组件附带一个ES模块垫片支持importmap在老的浏览器。所以,它的工作原理(请参见下面的note)。

    在您自己的代码,如果你依赖于现代ES6JavaScript等功能类的语法这是支持所有,但最古老的浏览器。如果你需要支持很老的浏览器,你应该使用一个工具再来一个而不是AssetMapper组件。

    请注意

    导入语句不能polyfilled或垫片吗每一个浏览器。然而,只有最古老的IE浏览器不支持——基本上11(由微软和不再支持不到.4%全球使用)。

    importmap功能垫片工作所有浏览器AssetMapper组件。然而,垫片没有使用“动态”进口:

    1 2 3 4 5 6 7
    / /这是进口{添加}”。/ math.js ';/ /这不会在最古老的浏览器中工作进口(”。/ math.js ')(({添加})= >{/ /……});

    如果你想使用动态进口,需要一定的老版本浏览器的支持(https://caniuse.com/import-maps),您可以使用一个importShim ()垫片的函数:https://www.npmjs.com/package/es-module-shims user-content-polyfill-edge-case-dynamic-import

    再来一个。看到用户体验的反应文档欧宝官网下载app更多细节关于使用AssetMapper组件。

    Vue文件可以在原生JavaScript编写,这些工作与AssetMapper组件。但是你不能写列纵队组件(即。.vue与组件文件),这些必须用于构建系统。看到用户体验Vue。js文欧宝官网下载app件更多细节关于使用AssetMapper组件。