介绍
在开发一个网站的过程中,对于用户的体验和SEO效果来说,页面性能是一个至关重要的因素。Google PageSpeed Insights是一个奇妙的工具,可以帮助你评估你的网站在性能方面的表现,它也能提供一些改善性能的建议。而recink-google-pagespeed这个npm包就是为了从Node.js应用程序中使用Google PageSpeed Insights的API而设计的。
安装
在安装recink-google-pagespeed之前,你需要确认你已经安装了Node.js和npm。然后,首先打开你的终端窗口并输入以下命令:
npm install recink-google-pagespeed --save
使用
通过导入recink-google-pagespeed包,我们可以使用它来调用Google PageSpeed Insights提供的有用API。
初始化
首先,我们需要初始化任务,以便我们使用这个包:
const recinkGooglePagespeed = require('recink-google-pagespeed'); const googlePagespeed = new recinkGooglePagespeed({ key: 'Google API key', strategy: 'mobile' });
这里我们用require('recink-google-pagespeed')
把包导入。包初始化时传递一个对象参数,其中key
用于将服务关联到Google API密钥(如果没有,这里有介绍),strategy
可以是"desktop"或"mobile"。如果你没有指定一个策略,recink-google-pagespeed 的默认设置是移动设备策略。
分析URL
然后,我们可以通过URL对页面进行分析,传递一个参数表示要分析的网址:
googlePagespeed.run({ url: 'https://www.google.com' }).then(data => console.log(data)).catch(error => console.error(error));
这里我们用run()
函数传递一个对象参数,其中url
是要分析的网址。可以根据需要设置任意数量的选项,但此处省略。我们在上述代码中使用了一个快捷方式,通过ES6语法console.log
打印输出结果。
处理结果
Google PageSpeed Insights吐出的结果是一种Google的标准化结果,我们可能需要过滤结果或者将结果转换为另一种风格或报告,这时候我们可以使用内置的工具实现。下面的代码展示了如何处理结果:
googlePagespeed.run({ url: 'https://www.google.com', locale: 'fr_FR', strategy: 'desktop', threshold: 90 }).then(result => { console.log(result.ruleGroups.SPEED.score); }).catch(error => console.error(error));
在此代码中,我们进行了一些参数的调整:
lcoale
选项指定返回结果的国际化设置;strategy
选项指定评估速度的策略;threshold
选项可以设置页面的最小期望分数。
我们可以通过打印出指定的抽象结果的分数来测试分析结果。分数范围从0到100。
示例代码
-- -------------------- ---- ------- ----- --------------------- - ----------------------------------- ----- --------------- - --- ----------------------- ---- ------- --- ---- --- --------------------- ---- ------------------------ ----------------------- ----------------- ----- -------- ----------------------------- ------------------------- ----------------------- ------- ---
结论
使用这个npm包,我们可以很方便地分析网页的性能并了解哪些改进措施可以采取。同时,我们还可以使用一些内置的工具来处理结果,让它更好地适合于我们显示和存储的方式。希望这篇文章有助于你掌握recink-google-pagespeed的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055cbf81e8991b448da54f