这篇文章给大家介绍的内容是关于利用php找出vue里已经导入但是未使用的组件,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在使用vue的时候,有时候由于种种原因会使我们导入一些组件,最终却没有使用它。于是我就编写了这个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 />"; } } } }
相关文章推荐:
以上是利用php找出vue里已经导入但是未使用的组件的方法的详细内容。更多信息请关注PHP中文网其他相关文章!