本文介绍
点赞 + 关注 + 珍藏 = 学会了
有前端开发教训或者用过 node
的开发者应该晓得,如果须要在本地运行 js
文件,须要通过 node xxx.js
来执行。
但在执行 vue create project-name
创立 Vue
我的项目时,为什么命令不是以 node
结尾呢?
这次就来浅浅的探讨一下,这条命令为什么 “不须要” 应用 node
来执行。
本文的运行环境
- 操作系统:win11
- node版本:17.6
- nvm版本:1.1.9
因为我日常工作起因,须要应用 nvm
切换 node
版本。
装置 vue-cli
我默认大家都曾经在本人电脑装置好 node 了,如果没装的,请关上 node官网 自行装置。
在执行 vue create
命令前,先确保电脑曾经装置了 vue-cli。
vue-cli 是创立 Vue
我的项目的一个脚手架工具, vue-cli
提供了 vue create
等命令。
应用以下命令装置 vue-cli
:
npm install -g @vue/cli# 或yarn global add @vue/cli
在装好 vue-cli
后,执行 vue --version
就能够查看到以后装置的 vue-cli
的版本。
vue-cli 到底装置在哪里了?
不论是应用 npm
还是 yarn
装置 vue-cli
,都离不开 node
。
所以我到了 node
的装置目录下查看,果然发现了 vue
的身影。
如果不晓得 node
装在哪了,在你装置完 vue-cli
后,能够用以下命令查看 vue-cli
的地位
# windows用户where vue# mac用户which vue
关上 vue
文件看了下,外面的内容如下
#!/bin/shbasedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")case `uname` in *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;esacif [ -x "$basedir/node" ]; then exec "$basedir/node" "$basedir/node_modules/@vue/cli/bin/vue.js" "$@"else exec node "$basedir/node_modules/@vue/cli/bin/vue.js" "$@"fi
发现了一条比拟扎眼的门路
$basedir/node_modules/@vue/cli/bin/vue.js
$basedir
示意文件所在的目录。
能够看出 \nodejs
目录下的 vue
文件只是一个软链接,它指向 /node_modules/@vue/cli/bin/vue.js
。
于是我顺藤摸瓜,进入了 /node_modules/@vue/cli/bin/
目录,发现了 vue.js
文件。
这个文件有200多行代码,外面有具体配置 vue-cli
的各种指令和配置项。
但本文目标是解开为什么 “不须要” 应用 node
就能够执行 js
文件。所以在本篇不打算深刻解说外面的各项配置。
咱们只需看该文件的第一行。
#!/usr/bin/env node
#!/usr/bin/env
的意思是找到以后零碎的全局环境,而后再加上 node
。
整句的意思是:在全局找到环境变量中 node
,而后通过 node
来执行该文件。
Hello World
整顿一下后面的解说,咱们是不是就有能力弄一个 “不须要” 应用 node
就能执行的文件进去了?
- 软链接,在全局环境中增加一个可执行的js文件。
- 应用
#!/usr/bin/env node
调用环境变量中的node
来执行本身。
第二个条件其实就是在 js
文件的头部增加一句话。留神,必须是文件的第一行!
那么如何给文件增加个软链接呢?
百度了一下,应用 ln -s
命令就行了 (windows
用户倡议应用 Git Bash
执行命令)。
ln -s 文件门路 命令名
我在 D盘
创立 test.js
,内容如下:
#!/usr/bin/env nodeconsole.log('Hello World')
而后进入 node
根目录,应用以下命令创立链接(我在这应用 sayhello
这个命令,你能够自定义的)
ln -s D:/test.js sayhello
之后在 node
根目录下就会呈现 sayhello
文件(没有后缀的)
此时,应用 Git Bash
在任何地位都能够间接应用 sayhello
命令了。
举荐浏览
- 《『前端必备』本地数据接口》
- 《这18个网站能让你的页面背景炫酷起来》
点赞 + 关注 + 珍藏 = 学会了