Vue开发环境搭建

Posted lixiaobin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue开发环境搭建相关的知识,希望对你有一定的参考价值。

Nodejs与包管理工具安装:

Windows安装:

https://nodejs.org/en/

下载安装包安装就可以。

 

Ubuntu安装:

//安装nodejs
sudo apt-get install nodejs
//安装包管理工具
sudo apt-get install npm

安装结果确认:

~/dev/devtest$ node --version
v8.11.1
~/dev/devtest$ npm --version
5.8.0

 

快捷通道(Vue-cli方法):

    //设置npm仓库镜像为国内淘宝镜像
    npm config set registry https://registry.npm.taobao.org
    //查看配置是否成功
    npm config get registryf
    //全局安装 webpack
    npm install -g webpack
    //全局安装 vue-cli
    npm install -g vue-cli
    //创建一个基于webpack模板的项目
    vue init webpack my-project
    
    cd my-project
    npm install
    //这一步看着简单,实际上都在配置文件里面配好了,可以去研究一下
    npm run dev

自动生成的目录结构:

技术分享图片

手动设置:

~/dev/my-project$ npm init -y
Wrote to /home/ubuntu/dev/my-project/package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

//Webpack
~/dev/my-project$ npm i webpack webpack-dev-server --save-dev
//Vue
~/dev/my-project$ npm i vue --save
//Loader
~/dev/my-project$ npm i vue-loader vue-html-loader css-loader vue-style-loader vue-hot-reload-api file-loader cross-env --save-dev
// 自动将依赖写入html文件
~/dev/my-project$ npm install html-webpack-plugin --save-dev


//新建build目录
~/dev/my-project$ mkdir -m 777 build
~/dev/my-project$ cd build

//新建webpack.config.js文件

 webpack.config.js

//修改webpack.config.js
var path = require(path);
var webpack = require(webpack);

module.exports = {
    entry: ./src/main.js, // 项目的入口文件,webpack会从main.js开始,把所有依赖的js都加载打包
    output: {
        path: path.resolve(__dirname, ./dist), // 项目的打包文件路径
        publicPath: /dist/, // 通过devServer访问路径
        filename: build.js // 打包后的文件名
    },
    devServer: {
        historyApiFallback: true,
        overlay: true
    }
};

//修改package.josn
//webpack-dev-server会自动启动一个静态资源web服务器 --hot参数表示启动热更新
"scripts": {
    "dev": "webpack-dev-server --open --hot",
    "build": "webpack --progress --hide-modules"
  },

//运行
//浏览器自动打开的一个页面,随意修改js,浏览器会自动刷新
npm run dev

//编译
npm run build

引入Vue:

//webpack默认不支持转码es6,但是import export这两个语法却单独支持
//webpack默认只支持js的模块化,如果需要把其他文件也当成模块引入,就需要相对应的loader解析器//webpack.config.js
var path = require(path);
var webpack = require(webpack);

module.exports = {
    entry: ./src/main.js,
    output: {
        path: path.resolve(__dirname, ./dist),
        publicPath: /dist/,
        filename: build.js
    },
    devServer: {
        historyApiFallback: true,
        overlay: true
    },
    resolve: {
        alias: {
            vue$: vue/dist/vue.esm.js
        }
    },
    module: {
        rules: [
            {
                test: /.css$/,
                use: [
                    vue-style-loader,
                    css-loader
                ],
            }
        ]
    }
};

//匹配后缀名为css的文件,然后分别用css-loader,vue-style-loader去解析 解析器的执行顺序是从下往上(先css-loader再vue-style-loader)
//我们这里用vue开发,所以使用vue-style-loader,其他情况使用style-loader

打包发布:

// 对文件进行压缩,缓存,分离等等优化处理//修改package.json
"scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
}

//修改webpack.config.js,判断NODE_ENV为production时,压缩js代码
var path = require(path);
var webpack = require(webpack);

module.exports = {
    // 省略...
}

if (process.env.NODE_ENV === production) {
    module.exports.devtool = #source-map;
    module.exports.plugins = (module.exports.plugins || []).concat([
      new webpack.DefinePlugin({
        process.env: {
          NODE_ENV: "production"
        }
      }),
      new webpack.optimize.UglifyJsPlugin(),
    ])
  }
  
module: {
        //加载器配置
        loaders: [
            //.css 文件使用 style-loader 和 css-loader 来处理
            { test: /.css$/, loader: ‘style-loader!css-loader‘ },
            //.js 文件使用 jsx-loader 来编译处理
            { test: /.js$/, loader: ‘jsx-loader?harmony‘ },
            //.scss 文件使用 style-loader、css-loader 和 sass-loader 来编译处理
            { test: /.scss$/, loader: ‘style!css!sass?sourceMap‘},
            //图片文件使用 url-loader 来处理,小于8kb的直接转为base64
            { test: /.(png|jpg)$/, loader: ‘url-loader?limit=8192‘}
        ]
    }

 

以上是关于Vue开发环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

vue2 组件库开发记录-搭建环境(第二次架构升级)

vue 开发系列 vue 开发环境搭建

基于vue-cli搭建vue项目开发环境

面试官:自己搭建过vue开发环境吗?

Vue.js项目的开发环境搭建与运行

webpack+vue2.0+nodeJs搭建环境