Webpack构建Vue项目(非Vuecli)

天大地大妈咪最大 提交于 2019-12-27 18:20:11

我们平时构建Vue项目,经常是用Vue官方提供的Vue-Cli脚手架,搭建起来非常方便。而Cli是基于webpack的工具,这里我要直接用webpack来搭建一个vue项目。

前提
请确保安装了 Node.js 的最新版本,Node-v查看版本号

开始构建项目

  1. 创建项目目录(myVuecli)
  2. 生成package.json
npm init
  1. 在项目中安装webpack
    npm install --save-dev webpack
  1. (如果你使用 webpack 4+ 版本)在项目中安装 webpack-cli
   npm install --save-dev webpack
  1. 创建 src 目录(存放打包前源文件)
  • src 中创建 index.html
  • src 中创建 main.js(主入口文件)
  • src 中创建 components (components 存放 vue 组件)
  • src中创建App.vue文件
  • 在根路径中创建 webpack.config.js
    项目目录
    6.安装依赖

npm install --save vue
npm install --save vue-router
npm install --save-dev webpack-dev-server
npm install --save-dev babel-core babel-loader@7.1.5 babel-preset-env
npm install --save-dev css-loader style-loader
npm install --save-dev less less-loader
npm install --save-dev url-loader
npm install --save-dev html-webpack-plugin
npm install --save-dev vue-loader vue-template-compiler

vue-loader 用于解析.vue文件
vue-template-compiler 用于编译模板 配置如下

let VueLoaderPlugin = require('vue-loader/lib/plugin');
module.exports = {
    module:{
        rules:[{
            test:/\.vue$/,
            use:['vue-loader']
        },]
     },
   plugins:[
        new vueLoaderPlugin()
   ]
}

配置webpack-dev-server进行热更新

let Webpack = require('webpack');
module.exports = {
    devServer:{
        contentBase: './src',
        port:8001,
        hot:true,//热更新
        open:true,//自动启动浏览器
        inline:true,//文件内容修改,浏览器自动刷新
        historyApiFallback:true,// 单页面应用切路由不刷新(history模式)
        proxy:{
        //配置跨域
            'api':{
                target:'http://localhost:8000',
                changeOrigin:true,
                secure:false
            }
        }
    },
    plugins:[
        new Webpack.HotModuleReplacementPlugin();
    ]
}

7.配置打包命令

在package.json中的scripts中配置

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server",
    "build": "webpack",
    "cmdBuild": "webpack-cli --entry ./app/main.js --output ./public/bundle.js"
}

8.配置Vue文件

//App.vue
<template>
  <div id="app">
      This is my Vue!!
  </div>
</template>
//index.html
<body>
    <div id="app"></div>
</body>
//main.js
import Vue from 'vue';
import App from './App.vue'
new Vue({
    render: h => h(App)
}).$mount('#app');

最后

npm run dev 项目运行起来
npm run build 打包项目

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!