npm全局包及cli制作方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm全局包及cli制作方法相关的知识,希望对你有一定的参考价值。
参考技术A 首先说一下npm全局包,npm install xxx -g 即为全局安装,全局安装的npm包一般都带有cmd命令,比如安装vue-cli后执行“vue create XXX”即可生成一个新的vue项目模版,再比如安装http-serve后执行“http-serve”命令可以本地起一个静态服务那么这些全局命令怎么实现的呢?其实很简单只需要在package.json文件里增加一个 "bin" 属性即可:
这样把包上传并全局安装后则会在本地注册一个全局命令,但是我们看到一般这种全局命令都会传若干个参数,例如最常见的:“npm i xxx -g”,"npm -version"这个是怎么做到的呢?这个时候“commander”该出场了,“npm install commander --save”即可本地安装保存,下面给一个简单的使用示例:
其中上面的action里的回调方法接受两个参数,第二个参数实际上是一个object,借鉴vue-cli里的一个处理方法:
有关于commander的用法就讲到这里,因为还有很多,如果直接看官方文档看不明白的可以选择直接阅读vue-cli的源码,里面相关的使用较多,可以参考借鉴
执行npm link即可,该命令会生成一条软链,指向全局包,即
输出第一行的意思是“vue-common”命令指向的具体文件位置(这个位置并非包在本机的开发路径),第二行是被link到全局的vue-fe-common包指向的实际位置
尝试全局安装 Vue CLI 时出现 NPM 代理问题
【中文标题】尝试全局安装 Vue CLI 时出现 NPM 代理问题【英文标题】:NPM proxy problem when trying to install Vue CLI globally 【发布时间】:2020-11-30 05:46:17 【问题描述】:我尝试全局安装 Vue Cli,但没有安装,并且还显示了一些代理设置错误。我已经手动/cmd 在 .npmrc 文件上添加了一些值,如下所示,但它对我不起作用。
npm config set proxy http://proxy.mycompany.com:8080
npm config set https-proxy http://proxy.mycompany.com:8080
错误如下:
npm ERR! code ETIMEDOUT
npm ERR! errno ETIMEDOUT
npm ERR! network request to http://registry.npmjs.org/@vue%2fcli failed, reason: connect ETIMEDOUT 104.16.20.35:80
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Viking_Castle\AppData\Roaming\npm-cache\_logs\2020-08-10T15_30_01_181Z-debug.log
【问题讨论】:
【参考方案1】:我有类似的错误
? Initializing git repository...
⚙️ Installing CLI plugins. This might take a while...
npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! network request to https://cdn.npm.taobao.org/%40babel/plugin-transform-unicode-escapes/-/%40babel/plugin-transform-unicode-escapes-7.12.1.tgz failed, reason: connect ETIMEDOUT 129.227.206.207:443 npm ERR! network This is a problem related to network connectivity. npm ERR! network In most cases you are behind a proxy or have bad network settings. npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Pradeep S\AppData\Roaming\npm-cache\_logs\2020-11-27T19_57_22_034Z-debug.log ERROR command failed: npm install --loglevel error
R通过将 Wifi 连接更改为笔记本电脑解决了。使用移动热点连接,再次尝试从vue cli创建项目,这次成功了
【讨论】:
【参考方案2】:尝试使用以下命令删除代理并尝试安装它
npm config rm proxy
npm config rm https-proxy
【讨论】:
评论不用于扩展讨论;这个对话是moved to chat。以上是关于npm全局包及cli制作方法的主要内容,如果未能解决你的问题,请参考以下文章