【con】vue全局无法运行(前端bug日记1)

环境介绍

全局vue命令问题

    13:18:打开终端(Microsoft自带终端+PowerShell),开始npm安装vue和vue-cli【之后开会并出去,没动电脑】 17点前:非安装目录运行vue create xxx,报错。 17:15:重新用npm安装了vue和vue-cli,更新了npm和node.js,都不行。 搜索发现似乎node.js版本会影响,看了一下系统,发现node.js没有出现在Windows的“应用”列表里。猜测是之前没插移动硬盘开电脑,导致node破坏了。 重新装了node的LTS,还不行(而且发现node安在内置硬盘里)。 17:27:怀疑vue和vue-cli根本没装上,查看全局包发现装上了,但网上说的全局包默认路径不存在。【这时候跑题去修改默认路径了,和主线无关,写在下面】 17:48:npm无论执行什么命令,都会让我用--location=global,即使我已经用了这玩意。看不下去,又开始改这个。 17:55:两个支线都修复了,包确定已装好,路径也在PATH里,终端用的是管理权限,还是不行。 17:57:为了组织思绪,开始写记录目前的尝试。

支线:修改npm全局包安装路径

    17:30:觉得全局包放在默认路径以后会找不到,按网上的办法修改了路径(npm config set prefix,npm config set cache)。 17:36:试图在新路径装vue和vue-cli,报错:
npm ERR! enoent ENOENT: no such file or directory, lstat
    17:38:搜索报错内容,没查到有用信息(这句报错关键词太多了),又搜lstat,发现是npm1.0开始用的函数,但还是没有帮助。 17:42:意识到路径可能没修改对,又发现除了上面的两个,还要改npm内置的prefix(控制台那两个算是用户配置的),修改nodejs ode_modules pm pmrc。 发现里面用到一个变量APPDATA,但nodejs文件夹找不到定义。 结果是系统变量,于是直接写死成prefix=我想要的路径。 问题解决。

支线:报错让用–location=global

    17:49:在上找到了解答,让改npm.cmd,把里面的prefix -g改成prefix --location=global。感觉这样不行(不懂cmd文件,单纯觉得会让每条命令都在全局运行,就没法局部安装什么包了……),继续找。 17:53:StackOverflow上说得一样,而且多改个文件(同文件夹的npm),改完好了。我为什么费这个劲,非得不信第一个答案(虽然如果听了估计也要一会才发现npm文件)? 19:03:在写博客的过程中,发现虽然vue还不能运行,但报错变了。原来是vue不是程序或可运行的命令(PS表述有点变化),现在是:
vue : 无法加载文件 nodejs
pm_globalvue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ vue
+ ~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
    19:06:网上说要改PowerShell权限,Set-ExecutionPolicy-Scope CurrentUser改成RemoteSigned,改了。 19:09:命令行输入vue成功启动vue-cli。 19:10:成功在目标目录创建vue项目!(预设换成了Vue3,用之,结晶项目不太考虑规范想用哪个都行,希望不要出现包的兼容问题) CLI自动选择了npmmirror,有点慢。记得之前哪个控制台应用(git?)不让用代理,开代理就无法传输,所以先不改回国际的源了。(领导:我们所有东西都不需要翻墙) 19:17:还没装好,饿得指尖有点麻了(今天定了闹钟,吃了早餐【昨天买来忘的乳酪蛋糕】,结果早餐午餐都没吃太多,反而撑不下去了;不过我本来也比较到点就饿),开着电脑下楼了,但愿只是第一次最慢吧……

-TBC-

经验分享 程序员 微信小程序 职场和发展