用到的核心库taro 命令入口当我们全局安装 taro-cli 包之后,我们的命令行里就多了一个 taro 命令。
[JavaScript] 纯文本查看 复制代码
npm install -g @tarojs/cli
那么 taro 命令是怎样添加进去的呢,其原因在于 package.json 里面的 bin 字段;
[JavaScript] 纯文本查看 复制代码
"bin": {
"taro": "bin/taro"
},
上面代码指定,taro 命令对应的可执行文件为 bin/taro。npm 会寻找这个文件,在 [prefix]/bin 目录下建立符号链接。在上面的例子中,taro会建立符号链接 [prefix]/bin/taro。由于 [prefix]/bin 目录会在运行时加入系统的 PATH 变量,因此在运行 npm 时,就可以不带路径,直接通过命令来调用这些脚本。
关于prefix,可以通过npm config get prefix获取。
[JavaScript] 纯文本查看 复制代码
npm config get prefix
/usr/local
通过下列命令可以更加清晰的看到它们之间的符号链接:
[JavaScript] 纯文本查看 复制代码
$ ls -al `which taro`
lrwxr-xr-x 1 chengshuai admin 40 6 15 10:51 /usr/local/bin/taro -> ../lib/node_modules/@tarojs/cli/bin/taro
总结到此,taro-cli 的主要目录结构,命令调用,项目初始化方式等基本都捋完了,有兴趣的同学可以结合着工程的源代码自己跟一遍,应该不会太费劲。
taro-cli 目前是将模版放在工程里面的,每次更新模版都要同步更新脚手架。而 vue-cli 是将项目模板放在 git 上,运行的时候再根据用户交互下载不同的模板,经过模板引擎渲染出来,生成项目。这样将模板和脚手架分离,就可以各自维护,即使模板有变动,只需要上传最新的模板即可,而不需要用户去更新脚手架就可以生成最新的项目。 这个后期可以纳入优化的范畴。