• Vue组件库系列-环境配置(一)


    NVM for Windows

    NVM 是 Node Version Manager 的缩写。这是一个管理node的工具,可以实现同时安装多个版本的node并且可以来回切换,方便测试npm包在不同node版本下的表现。

    安装

    安装非常简单粗暴,下载 nvm-windows 安装包,傻瓜式安装即可。根据官方说明,安装前需要删除本机已经安装的node/npm。

    Uninstall any existing versions of Node.js before installing NVM for Windows (otherwise you'll have conflicting versions). Delete any existing Node.js installation directories (e.g., "C:Program Files odejs") that might remain. NVM's generated symlink will not overwrite an existing (even empty) installation directory.

    Delete the existing npm install location (e.g. "C:Users<user>AppDataRoaming pm") to prevent global module conflicts. Remember to backup any global npmrc config (e.g. C:Users<user>AppDataRoaming pmetc pmrc), or copy the settings to the user config C:Users<user>.npmrc.

    image-20210401112656511

    这是NVM安装目录,后面下载的各种版本的node就是会在这里了。

    image-20210401112807290

    这其实是一个文件夹的快捷方式,指向当前使用的node版本,用来切换node版本用的。

    然后测试下是否安装成功

    image-20210401113709376

    常用指令

    # 列出所有安装的node版本,带*号的是当前正在使用的
    nvm list
    
    # 列出所有可以安装的node版本
    nvm list available
    
    # 安装指定的node版本
    nvm install <xx.xx.xx>
    
    # 切换到指定的node版本
    nvm use <xx.xx.xx>
    
    # 卸载指定的node版本
    nvm uninstall <xx.xx.xx>
    

    镜像配置

    由于网络或者是墙的原因导致使用nvm下载node和npm很慢甚至失败,例如

    image-20210401115753995

    不如试试淘宝镜像吧。

    nvm node_mirror https://npm.taobao.org/mirrors/node/
    nvm npm_mirror https://npm.taobao.org/mirrors/npm/
    

    Node/NPM

    nvm安装配置已经完成,可以开始安装node/npm了。

    安装最新LTS版本

    安装最新的LTS版本的node,npm也会随着一起安装。

    nvm list available
    

    image-20210401121002569

    nvm install 14.16.0
    

    image-20210401120338466

    然后使用它

    nvm use 14.16.0
    nvm list
    node -v
    npm -v
    

    image-20210401120514105

    配置

    NPM全局位置

    先来看看npm默认的缓存路径和全局安装的路径

    npm config get prefix
    npm config get cache
    

    image-20210402100142865

    可以看到全局包是存放在nvm-nodejs下的,它其实指向的是我的D: vm下的每个node版本的目录,当我们切换不同版本的时候指向不同的目录。

    image-20210402101537335

    image-20210402101637675

    这就会带来一个问题,就是在切换不同node版本的时候全局包会丢失,或者说当你下载一个新的node版本时,之前安装的全局包就没有了,除非全部重新安装一遍。

    所以为了解决这个问题,我们可以重新指定一下prefix路径,cache可以保留,下面是我的设置

    npm config set cache D:
    vm
    ode_cache
    npm config set prefix D:
    vm
    ode_global
    

    image-20210402103115909

    现在试着全局安装一个cnpm看看,不出意外的话相关的包文件都应该在D: vm ode_global下面。

    image-20210402110400729

    现在执行cnpm发现没有这个命令

    image-20210402104310101

    那是因为我们需要把这个全局路径添加到系统环境变量PATH中去,所以创建系统变量NPM_GLOBAL(其实名字随便),然后添加到PATH

    image-20210402105644180

    image-20210402105833740

    image-20210402110442016

    现在切换node版本,然后再试试,依然可以使用

    image-20210402110648351

    NPM镜像

    到这里node和npm其实已经安装完成了,接下来可以开始下载项目需要的各种包了。但是还是因为网络和墙的原因导致下载npm包时很慢或者失败,所有通常的做法是换个镜像(下载源)或者使用 cnpm。

    首先来看看默认的registry是什么

    npm config get registry
    

    image-20210401121642462

    可以换成淘宝镜像

    npm config set registry https://registry.npm.taobao.org
    

    image-20210401122013702

    也可以临时替换成淘宝镜像,例如用淘宝镜像来下载yarn包

    npm install -g yarn --registry=https://registry.npm.taobao.org
    

    NRM

    NRM 是 NPM Registry Manager 的缩写。用来管理npm各种镜像用的,也许你需要经常在几个源之间切换,比如用淘宝源下载包,用npm官方的源或者公司自己的源来发布包,那使用nrm还是比较方便的。

    下载 nrm 模块

    npm i -g nrm
    

    NOTE: 高版本的node可能会导致nrm无法使用,至少我测试的14.15.014.16.0都遇到了,nrm官方有个解决方案,可以自行解决

    常用命令

    # 列出所有源
    nrm ls
    
    # 切换源
    nrm use taobao
    
    # 添加源
    nrm add <源名字> <源地址>
    
    # 删除源
    nrm del <源名字>
    

    其他镜像

    虽然自己暂时还没有遇到,但是这里还是先mark一下。[详细请参考: 聊聊NPM镜像那些险象环生的坑]

    # 查看Node版本和NPM版本确认已安装Node环境
    node -v
    npm -v
    
    # 安装nrm并设置NPM的淘宝镜像
    npm i -g nrm
    nrm use taobao
    
    # 设置依赖安装过程中内部模块下载Node的淘宝镜像
    npm config set disturl https://npm.taobao.org/mirrors/node/
    
    # 设置常用模块的淘宝镜像
    npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
    npm config set sharp_dist_base_url https://npm.taobao.org/mirrors/sharp-libvips/
    npm config set electron_mirror https://npm.taobao.org/mirrors/electron/
    npm config set puppeteer_download_host https://npm.taobao.org/mirrors/
    npm config set phantomjs_cdnurl https://npm.taobao.org/mirrors/phantomjs/
    npm config set sentrycli_cdnurl https://npm.taobao.org/mirrors/sentry-cli/
    npm config set sqlite3_binary_site https://npm.taobao.org/mirrors/sqlite3/
    npm config set python_mirror https://npm.taobao.org/mirrors/python/
    
    针对node-sass的情况:
    
    # 安装rimraf并设置package.json
    npm i -g rimraf
    
    # 安装前请确保当前的Node版本和node-sass版本已兼容
    
    # 安装失败
    npm cache clean -f
    npm rebuild node-sass 或 npm run reinstall
    package.json中加入npm scripts:
    
    {
      "scripts": {
        "reinstall": "rimraf node_modules && npm i"
      }
    }
    

    VUE CLI

    npm i -g @vue/cli
    

    用了淘宝源还是失败了,最后还是用了cnpm 给装上了

    image-20210402120307427

    image-20210402120511947

    总结

    好了,这就是我目前的环境配置,确切地说应该是node环境的配置。

    nvm 管理不同版本的node。配置下载node和npm的镜像通常还是用的到的。

    nrm 管理npm镜像,就是管理npm包从哪里下载。

    cnpm 是一个npm包,直接从淘宝镜像下载包,网络问题通常能解决。

    @vue/cli 是vue的脚手架,全局安装方便创建vue项目。

    还有就是npm下载的全局路径和缓存路径自定义,建议自己设置一下,起码自己知道全局包都在什么地方。

  • 相关阅读:
    jQuery拖动调整表格列宽度-resizableColumns
    图像切割之(一)概述
    内存泄漏以及常见的解决方法
    中国大概能用的NTPserver地址
    SWFUpload简单使用样例 Java版(JSP)
    XML是什么,它能够做什么?——写给XML入门者
    MfC 进度条控件
    IP地址的分类——a,b,c 类是怎样划分的
    Python的包管理工具Pip
    Chapter 1 Securing Your Server and Network(6):为SQL Server訪问配置防火墙
  • 原文地址:https://www.cnblogs.com/seanshao/p/14610232.html
Copyright © 2020-2023  润新知