本来以为在Mac上搭建vue.js的环境挺简单的,谁知遇到各种问题(可能是RP问题),网上解决的方法也寥寥无几,这里就记录下遇到的坑。

一、vue.js开发环境


1、安装 brew,这个简单,直接执行远程脚本

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2、安装 nodejs,这一步时间可能略长(执行时间长短也有可能跟网络有关系)

brew install nodejs

3、获取nodejs模块安装目录访问权限

sudo chmod -R 777 /usr/local/lib/node_modules/

4、安装淘宝镜像,国内直接使用 npm 的官方镜像是非常慢的,所以这里使用淘宝 NPM 镜像

1)更改npm源:

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

(2)配置后可通过下面方式来验证是否成功,如果显示“https://registry.npm.taobao.org”则说明配置成功

npm config get registry

(3)然后安装淘宝的cnpm(如果该步骤报错“rollbackFailedOptional”,可以尝试执行步骤4或步骤5,否则跳过步骤4或步骤5)

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

(4)先删除原有的所有代理,再重新安装淘宝的cnpm

npm config rm proxy
npm config rm https-proxy
npm install -g cnpm --registry=https://registry.npm.taobao.org

(5)报错“rollbackFailedOptional”,还可能是权限问题,用sudo执行:

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

以下是安装淘宝cnpm成功的结果:

MacBook-Pro:~ hu$ sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
/usr/local/bin/cnpm -> /usr/local/lib/node_modules/cnpm/bin/cnpm
+ cnpm@6.0.0
added 632 packages from 843 contributors in 22.264s

5、用淘宝的cnpm安装vue

cnpm install vue
cnpm install --global vue-cli

到这里vue.js环境就算ok了。



二、初始化一个vue.js项目


1、自己创建并进入一个项目目录,创建一个名为VueDemo的vue项目

cd /usr/local/projects/vue/
vue init webpack VueDemo

创建项目可能会报错“vue-cli · Failed to download repo vuejs-templates/webpack: tunneling socket could not be established, cause=Parse Error”,可以尝试如下:
(1)清空npm代理,重新执行

npm config set proxy null
vue init webpack VueDemo

(2)或者sudo执行(webpack是构建工具,也就是整个项目是基于webpack的)

sudo vue init webpack VueDemo

创建项目成功的结果:

? Project name VueDemo
? Project description A Vue.js project
? Author danny <danny@gmail.com>
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests Yes
? Pick a test runner jest
? Setup e2e tests with Nightwatch? Yes
? Should we run `npm install` for you after the project has been created? (recommended) no

   vue-cli · Generated "VueDemo".

# Project initialization finished!
# ========================

To get started:

  cd vue-demo-01
  npm install (or if using yarn: yarn)
  npm run lint -- --fix (or for yarn: yarn run lint --fix)
  npm run dev

Documentation can be found at https://vuejs-templates.github.io/webpack

2、启动项目
(1)安装项目依赖,启动项目需要先安装项目所需依赖,就跟java的maven项目需要先更新dependencies一样,具体项目都依赖了什么,在项目根目录下package.json中的devDependencies标签下可以看到

cd /usr/local/projects/vue/VueDemo
sudo cnpm install

在Mac下,有些项目执行install时可能会报错“libtool: unrecognized option `-static’”,解决方法:在~/.bash_profile中添加“PATH="/Library/Developer/CommandLineTools/usr/bin:$PATH”,再重新打开一个终端,重新运行install命令。

安装成功之后,项目根目录会多出一个node_modules文件夹,这里边就是项目需要的依赖包资源(文件挺多的)。

(2)运行项目,用热加载的方式启动项目,在修改完代码后不用手动刷新浏览器就能实时看到修改后的效果。

cnpm run dev

启动成功的结果:

> vue-demo-01@1.0.0 dev /usr/local/projects/vue/VueDemo
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

 95% emitting

 DONE  Compiled successfully in 3084ms                                                                                                                                   下午10:58:20

 I  Your application is running here: http://localhost:8080

打开http://localhost:8080就是vue默认的模板

mac vue项目下载eslint版本 mac安装vue开发环境_vue



对于用惯了idea的同学可能想在idea中开发vue,idea配置vue开发环境网上有很多教程,这里就不重复了,随便贴一篇:。

三、vue.js项目打包部署


当vue.js项目开发完成需要部署时,先打包,再部署。
1、打包
在项目目录下,执行

cnpm run build

执行完之后,项目根目录会出现一个dist文件夹,里面有一个index.html,直接打开就可以看到页面效果。

2、部署
上面步骤,dist就是打好的包,可以直接把dist部署在nginx等服务器下,以nginx为例,把nginx.conf中的location指向dist文件夹,就可以了。

server {
        listen  80;
        server_name  127.0.0.1;
        location / {
            root /data/delploy/dist/;
            index  index.html index.htm;
        }
}