MacOS 中搭建vue工作环境

在旧电脑不堪重负下入手了新的电脑,开一帖来记录自己配置开发环境过程

  • Node

官网下载 https://nodejs.org/en/download/
测试Node安装
测试是否安装成功。 打开终端,输入node,出现>交互命令行,然后可以输入console.log("Hello,World")。

> console.log("Hello,World");
Hello,World
undefined

输入.exit退出node,查看node和npm的版本。

node -v
npm -v

设置npm的默认安装路径和缓存路径

  • 查看用户配置
    npm config ls
    npm config list
  • 查看全部配置
    npm config ls -l
    npm config list -l
  • Vue
npm i -g yarn
npm install vue

如果在安装过程中出过一些错误,可能是npm再mac权限不够可以简单的提权安装

  • webpack
sudo -s
npm install webpack -g
  • vuecli
npm install -g @vue/cli
$ yarn global add @vue/cli-init

测试初始化
如果安装的是vuex是4.0版本直接使用vue create test-app.

npm权限不够 有以下几种方法

  1. 使用nvm:https://github.com/creationix/nvm/blob/master/README.md#installation
    在linux上,一条命令搞定nvm安装:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

or

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash

然后,安装node,注意:如果你已经安装了node,不用卸载旧的,直接安装就好,nvm会替你管理版本的:
nvm install node 之后则不会出现问题。

p.s如果出现安装后

nvm is already installed in /home/richard/.nvm, trying to update using git

的问题可以重新执行curl安装nvm,nvm的配置是放在~/.bash_profile里面。之后通过vim编辑来将下面配置写入

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
  1. 更新npm权限
$ sudo npm i -g npm

后记

从官网下载 pkg 安装包来安装 NodeJS,但这种方式可能导致后续使用 NodeJS 时碰到很多不可预料的权限问题,最终还是选择使用Homebrew来管理node

brew install nod,找到tar.gz删除

如果遇到安装不上 可以执行这个

cd  /Users/czkm/Library/Caches/Homebrew/ 
rm -rf portable-ruby-2.3.3.leopard_64.bottle.1.tar.gz

遇到brew下载过慢

# 替换brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# 替换homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git

# 替换homebrew-bottles:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

输入node -v或npm -v 检查安装情况
这里安装的 npm 是在 /usr/local/ 目录下,默认的全局
node_modules
文件夹也是在这个目录下面,后续如果通过npm时会出现一些权限上的问题。建议修改全局 node_modules 文件夹的位置,把它改到我们自己的用户目录下。

  • 首先在 home 目录下新建一个给 npm 用的文件夹,比如 ~/.npm-global
  • 新建一个 ~/.npmrc 文件,在里面写上 prefix=~/.npm-global 。cat ~/.npmrc
  • 使用 npm i -g webpack 安装全局命令时,都会被安装到这个文件夹里了,执行ls ~/.npm-global/bin 就能看到刚刚安装的 webpack 了。
source ~/.bash_profile

  • 终端美化

1.检查环境
输入命令,检查是否有/bin/zshmacOS自带zsh

cat /etc/shells

2.修改环境
修改默认的bash为zsh,重启Terminal或者iterm2.

chsh -s /bin/zsh

检查修改结果,显示/bin/zsh即成功.

echo $SHELL

采用zsh代替bash,而zsh加载的是 ~/.zshrc文件,而 ‘.zshrc’ 文件中并没有定义任务环境变量,需要在末尾处添加source ~/.bash_profile之后
source ~/.zshrc文件更新即可

  • 安装配置oh-my-zsh

1.安装oh-my-zsh运行一键安装包命令

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

2.配置oh-my-zsh主题下载powerlevel9k主题

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

编辑.zshrc文件来修改oh-my-zsh主题

vi .zshrc
找到ZSH_THEME="robbyrussell"
改为ZSH_THEME="powerlevel9k/powerlevel9k"

Mac中VIM的 相关操作

i   insert 进入编辑
Esc 退出编辑模式,输入以下命令:

:wq 保存后退出vi,若为 :wq! 则为强制储存后退出(常用)

:w 保存但不退出(常用)

:w! 若文件属性为『只读』时,强制写入该档案

:q 离开 vi (常用)

:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。

:e! 将档案还原到最原始的状态!
  • 配置Terminal,iTerm2,VSCode.

1.下载字体及主题下载Menlo-for-Powerline字体包,包内字体分别双击安装到系统内.

下载地址:https://github.com/stilleshan/files/raw/master/projects/vscode-zsh/Menlo-for-Powerline.zip

下载Solarized主题,包内包含Terminal和iTerm2两个软件的5个主题.

推荐使用Solarized Dark Higher Contrast风格,包内含有全部5种风格,请自行选择.

下载地址:https://github.com/stilleshan/files/raw/master/projects/vscode-zsh/Solarized.zip

2.配置Terminal

在刚下载的Solarized包内,找到Solarized-for-Terminal中的Solarized Dark Higher Contrast.terminal,双击运行即打开Terminal.

  • 此时因为字体文件未设置,有乱码.
  • 偏好设置->描述文件
  • 左侧Solarized Dark Higher Contrast->默认,设置为默认主题.
  • 字体选择安装好的Menlo for Powerline
    屏幕快照 2019-10-20 下午4.11.54.png


    image
image

3.配置iTerm2
官网 https://www.iterm2.com/ 下载并安装iTerm2

  • Preferences-Profiles-Colors
  • 右下角Color Presets选择import导入Solarized Dark Higher - - - Contrast,并选择此主题.
  • Preferences-Profiles-Text
  • Font选择安装好的Menlo for Powerline即配置完毕.


    image

    image

    image

    4.配置VSCode
    打开Vscode-找到设置-搜索setting.json并编辑

"terminal.external.osxExec": "iTerm.app",
"terminal.integrated.shell.osx": "zsh",
"terminal.integrated.fontFamily": "Menlo for Powerline"
image

自用vscode插件列表

  • Atom One Dark Theme
  • Beautify
  • Code Runner
  • Debugger for Chrome
  • ESLint
  • eslint-disable-snippets
  • GitLens — Git supercharged
  • HTML CSS Support
  • HTML Snippets
  • JavaScript (ES6) code snippets
  • Material Icon Theme
  • npm
  • open in browser
  • Path Intellisense
  • Power Mode
  • Prettier - Code formatter
  • Prettier - JavaScript formatter
  • TabNine
  • Vetur
  • vscode-icons
  • vscode-icons-mac
  • vue
  • Vue 2 Snippets
  • Vue VSCode Snippets
  • vue-helper

vscode使用的setting.json

{
  // "workbench.colorTheme": "Github Light Theme - Gray",
  "window.zoomLevel": 0,
  "explorer.confirmDelete": false,
  "git.confirmSync": false,
  "editor.suggestSelection": "first",
  "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
  "breadcrumbs.enabled": true,
  "editor.minimap.enabled": false,
  // vscode默认启用了根据文件类型自动设置tabsize的选项
  "editor.detectIndentation": false,
  // 重新设定tabsize
  "editor.tabSize": 2,
  // #每次保存的时候自动格式化
  "editor.formatOnSave": true,
  // #每次保存的时候将代码按eslint格式进行修复
  "eslint.autoFixOnSave": true,
  // 添加 vue 支持
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    {
      "language": "vue",
      "autoFix": true
    }
  ],
  //  #让prettier使用eslint的代码格式进行校验
  "prettier.eslintIntegration": true,
  //  #去掉代码结尾的分号
  "prettier.semi": false,
  //  #使用带引号替代双引号
  "prettier.singleQuote": true,
  //  #让函数(名)和后面的括号之间加个空格
  "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
  "prettier.arrowParens": "always", 
  // },
  "vetur.format.defaultFormatterOptions": {
    "js-beautify-html": {
      "wrap_attributes": "force-expand-multiline"
    },
    "prettier": {
      "eslintIntegration": true,
      "arrowParens": "always",
      "semi": false,
      "singleQuote": true
    }
  },
  "workbench.iconTheme": "material-icon-theme",
  "workbench.tree.indent": 40,
  "workbench.tree.renderIndentGuides": "always",
  "[javascript]": {
    "editor.defaultFormatter": "vscode.typescript-language-features"
  },
  "explorer.confirmDragAndDrop": false,
  "editor.fontWeight": "700",
  "scss.lint.unknownProperties": "ignore",
  "css.lint.unknownProperties": "ignore",
  "scss.lint.vendorPrefix": "ignore",
  "vetur.validation.style": false,
  "window.menuBarVisibility": "default",
  "workbench.sideBar.location": "left",
  "files.associations": {
    "*.cjson": "jsonc",
    "*.wxss": "css",
    "*.wxs": "javascript"
  },
  "emmet.includeLanguages": {
    "wxml": "html"
  },
  "minapp-vscode.disableAutoConfig": true,
  "workbench.activityBar.visible": true,
  "editor.wordWrap": "on",
  "fileheader.customMade": {
    "Date": "Do not edit", // 文件创建时间(不变)
    "LastEditors": "last_modified_by", // 文件最后编辑者
    "LastEditTime": "Do not edit" // 文件最后编辑时间
  },
  "powermode.enabled": true,
  "vetur.format.defaultFormatter.html": "js-beautify-html",
  "vsicons.dontShowNewVersionMessage": true,
  "terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
  "fileheader.Author": "czk",
  "fileheader.LastModifiedBy": "czk",
  "fileheader.tpl": "",
  "terminal.integrated.rendererType": "dom", // 函数注释
  "alias-skip.mappings": {
    "@": "/src" // 默认只有`@`映射,映射到`/src`,你可以添加更多映射,映射路径必须以`/`开头
    // ...更多映射关系
  },
  "workbench.colorTheme": "Atom One Dark",
  "workbench.startupEditor": "welcomePage",
  "terminal.external.osxExec": "iTerm.app",
  "terminal.integrated.shell.osx": "zsh",
  "terminal.integrated.fontFamily": "Menlo for Powerline",
  "diffEditor.ignoreTrimWhitespace": false
}
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容