视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
利用php找出vue里已经导入但是未使用的组件的方法
2020-11-27 19:32:57 责编:小采
文档


这篇文章给大家介绍的内容是关于利用php找出vue里已经导入但是未使用的组件,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在使用vue的时候,有时候由于种种原因会使我们导入一些组件,最终却没有使用它。于是我就编写了这个php文件来找出已经导入但是未使用的组件。

为什么是php

JavaScript不能访问本地文件,node.js我不会。
如果你没用过php,但是想使用。可以自己搭建一个php环境,Windows下个wamp可以一键安装。

怎么使用

复制底部代码,编辑check.php文件的第一行,替换''里的内容为你的src路径

const PATH = '你的vue项目的src路径';

保存为check.php到www目录下,然后游览器访问http://localhost/check.php

代码

<?php
const PATH = '你的vue项目的src路径';

getPath(my_dir(PATH), PATH);
echo '------------------------end------------------------';

// 遍历目录下所有文件夹和文件
function my_dir($dir)
{
 $files = array();
 if (@$handle = opendir($dir)) { //注意这里要加一个@,不然会有warning错误提示:)
 while (($file = readdir($handle)) !== false) {
 if ($file != ".." && $file != ".") { //排除根目录;
 if (is_dir($dir . "/" . $file)) { //如果是子文件夹,就进行递归
 $files[$file] = my_dir($dir . "/" . $file);
 } else { //不然就将文件的名字存入数组;
 $files[] = $file;
 }

 }
 }
 closedir($handle);
 return $files;
 } else {
 echo '文件夹路径有误,请检查路径';
 exit(0);
 }
}

// 根据遍历的内容找出路径 如果是vue文件就遍历他
function getPath($t, $path = '')
{
 if (is_array($t)) {
 foreach ($t as $k => $v) {
 if (is_array($v)) {
 getPath($v, $path . '/' . $k);
 } else if (is_string($v) && strpos($v, '.vue') !== false) {
 searchNoUseComponents($path . '/' . $v);
 }
 }
 }
}

// 把驼峰改成短横线分隔命名
function humpToLine($str)
{
 $str = lcfirst($str);
 $str = preg_replace_callback('/(([A-Z]|[0-9]){1})/', function ($matches) {
 return '-' . strtolower($matches[0]);
 }, $str);
 return $str;
}

// 寻找vue内导入却未使用的组件
function searchNoUseComponents($path)
{
 if (file_exists($path)) {
 $flag = 0;
 $myFile = fopen($path, 'r');
 $components = [];
 $originComponents = [];
 while (!feof($myFile)) {
 $line = fgets($myFile);
 if (strpos($line, 'components: {}') !== false) {
 break;
 } else if (strpos($line, 'components: {') !== false) {
 $flag = 1;
 } else if ($flag == 1 && strpos($line, '}') === false) {
 $components[] = humpToLine(trim(trim($line), ','));
 $originComponents[] = trim(trim($line), ',');
 } else if ($flag == 1 && strpos($line, '}') !== false) {
 break;
 }
 }
 fclose($myFile);
 $res = fopen($path, 'r');
 $vue = fread($res, filesize($path));
 foreach ($components as $k => $v) {
 if (strpos($vue, '<' . $v) === false) {
 echo ltrim($path, PATH) . ' 内组件 ' . $originComponents[$k] . ' 导入但是未使用' . "<br />";
 }
 }
 }
}

相关文章推荐:

怎么用Vue导出excel表格功能

利用Xdebug分析PHP程序,找出性能瓶颈

下载本文
显示全文
专题