webpack打包vue -->简易讲解

### 1. 测试环境:

推荐这篇文章:讲的很细致

https://www.cnblogs.com/lhweb15/p/5660609.html

#### 1. webpack.config.js自行安装

```javascript

{  "name": "vuetest",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "start": "webpack --display-modules --display-chunks --config build/webpack.config.js",    "test": "echo \"Error: no test specified\" && exit 1"  },  "author": "",  "license": "ISC",  "dependencies": {    "babel-loader": "^7.1.4",    "babel-preset-es2015": "^6.24.1",    "css-loader": "^0.28.11",    "file-loader": "^1.1.11",    "html-webpack-plugin": "^3.2.0",    "less": "^3.0.4",    "less-loader": "^4.1.0",    "style-loader": "^0.21.0",    "vue": "^2.5.16",    "webpack": "^4.12.0",    "webpack-dev-server": "^3.1.4"  },  "devDependencies": {    "babel-cli": "^6.26.0",    "express": "^4.16.3",    "webpack-cli": "^3.0.8",    "webpack-dev-middleware": "^3.1.3",    "webpack-hot-middleware": "^2.22.2"  }}

```

#### 2.配置文件:

dev-clietn.js

```javascript

var hotClient = require(‘webpack-hot-middleware/client‘)

// 订阅事件,当 event.action === ‘reload‘ 时执行页面刷新hotClient.subscribe(function (event) {    if (event.action === ‘reload‘) {        window.location.reload()    }})

```

webpack.config.js

```javascript

// nodejs 中的path模块var path = require(‘path‘);var HtmlWebpackPlugin = require(‘html-webpack-plugin‘);var webpack = require(‘webpack‘);module.exports = {    mode:"development",    //entry:[‘webpack-hot-middleware/client‘, path.resolve(__dirname, ‘../app/index.js‘)],    entry: {        app: [            ‘./build/dev-client‘,            path.resolve(__dirname, ‘../app/index.js‘)        ]    },    // 输出配置    output: {        // 输出路径是 myProject/output/static        path: path.resolve(__dirname, ‘./static‘),        //publicPath: ‘static/‘,        publicPath: "/",        filename: ‘[name].[hash].js‘,        chunkFilename: ‘[id].[chunkhash].js‘    },    resolve:{        alias:{            ‘vue$‘:‘vue/dist/vue.js‘        }    },    module:{        rules: [            {test: /\.vue$/, loader: ‘vue-loader‘ },            {test:/\.(eot|woff|woff2|svg|ttf)([\?]?.*)$/,loader:"file-loader"},            {test: /\.(png|jpg|gif)$/,loader: ‘url-loader?limit=8192‘},            {test: /\.less$/i, use: [‘style-loader‘, { loader: ‘css-loader‘, options: { importLoaders: 1 } },‘less-loader‘]},        ]    },    plugins: [        // 添加三个插件        new webpack.optimize.OccurrenceOrderPlugin(),        new webpack.HotModuleReplacementPlugin(),        new webpack.NoEmitOnErrorsPlugin(),        new HtmlWebpackPlugin({            filename: ‘index.html‘,            template: path.resolve(__dirname, ‘../app/index.html‘),            inject: true        }),    ]}

```

webpack.dev.config.js

```javascript

// 引入必要的模块var express = require(‘express‘)var webpack = require(‘webpack‘)var config = require(‘./webpack.config‘)

// 创建一个express实例var app = express()

// 调用webpack并把配置传递过去var compiler = webpack(config)

// 使用 webpack-dev-middleware 中间件var devMiddleware = require(‘webpack-dev-middleware‘)(compiler, {    publicPath: config.output.publicPath,    stats: {        colors: true,        chunks: false    }})var hotMiddleware = require(‘webpack-hot-middleware‘)(compiler)// webpack插件,监听html文件改变事件compiler.plugin(‘compilation‘, function (compilation) {compilation.plugin(‘html-webpack-plugin-after-emit‘, function (data, cb) {    // 发布事件    hotMiddleware.publish({ action: ‘reload‘ })        cb()    })})// 注册中间件app.use(devMiddleware)app.use(hotMiddleware)// 监听 8881端口,开启服务器app.listen(8881, function (err) {    if (err) {        console.log(err)        return    }    console.log(‘Listening at http://localhost:8881‘)})

```

### 2. 生产环境

### 3.打包优化

原文地址:https://www.cnblogs.com/subtract/p/9220549.html

时间: 2024-10-12 19:34:52

webpack打包vue -->简易讲解的相关文章

使用webpack打包Vue工程

本篇文章就是介绍如何使用webpack构建前端工程. 目标 本次的工程以Vue.js为主角,Vue.js是一款小巧优雅而且强大的轻量级mvvm框架,配合webpack模块化打包.制作出如下图的效果.仅仅搭一个框架,会用上很多插件和加载器. 环境准备 主要是一些全局的nodejs包 Nodejs npm webpack less ? 1 2 sudo npm install webpack -g // -g 代表全局安装webpack,调出命令行即可使用webpack命令 sudo npm ins

如何做到在webpack打包vue项目后,在外部动态修改配置文件

在我们做完vue项目后,只需要执行 npm run dist 就可以轻松进行打包转测试,可是如果我们临时需要修改一些配置文件比如域名,这时候我们就有点懵逼了,那就修改了再重新打一次包? NO NO NO,让我们一起来探索如何解决这个问题吧. 首先我们需要借助一个插件 generate-asset-webpack-plugin npm install generate-asset-webpack-plugin --save-dev 其次在build文件夹下建立一个generate-asset.co

webpack打包vue配置

/* 引入操作路径模块和webpack */ var path = require('path'); var webpack = require('webpack'); module.exports = { /* 输入文件 */ entry: { index:'./src/main.js' }, output: { /* 输出目录,没有则新建 */ path: path.resolve(__dirname, './dist'), /* 静态目录,可以直接从这里取文件 */ publicPath:

16.如何做到webpack打包vue项目后,可以修改配置文件

问题描述: 前端需要修改restful API的url,但是打包之后,配置文件找不到了,如果在npm run build 生成dist后,这个配置也被写死了,传到运行的前端服务器上后,假设某次,api服务器的ip修改了,改动只是更新下这个url,但是却需要会到前端源码,url后,在重新npm run build,然后再把整个dist再重新传到前端服务器,才可以. 解决方法: 用了generate-asset-webpack-plugin 这个插件,在webpack.prod.conf.js中去生

关于webpack 打包vue项目的2中路由配置方式

首先,2种都是引入配置好的router里面的index.js import Vue from 'vue'import Router from 'vue-router'import login from '@/components/login' Vue.use(Router) 1.第一种写法export default new Router({  routes: [    {      path: '/login',      component: login    }   ]}) 2.第二种写法

解决webpack打包vue项目后,部署完成后,刷新页面页面404

1.url不动式url完全不动,即你的页面怎么改变,怎么跳转url都不会改变.这种情况的原理 就是纯ajax拿到页面后替换原页面中的元素,刷新页面就是首页 2.带hash(#)式这种相对于第一种的话刷新页面页面不会丢失    实现原理写一个window事件我监听url的变化,那我就能实先路由,那样我就可以根据url的变化,来通过ajax请求参数来渲染页面,一个url对应一个页面,就不会重复.window.addEventListener(‘hashchange‘,function(){self.

如何解决使用webpack打包之后,font-awsome路径不对的问题,终极解决方法

http://www.cnblogs.com/caimuqing/p/7065694.html 问题描述: 使用webpack打包vue项目,使用font-awsome字体,发现打包之后,font-awsome图标不显示,报错为路径不对 看了下打包的路径,的确路径不对,打包之后font-awsome的文件是存放在static/fonts/下的,而访问的时候static/css/static/fonts/ 原因是: build > webpack.base.conf.js 里面loader的设置

【vue】饿了么项目-使用webpack打包项目

1.vue cli给我们提供了npm run build命令打包项目,在packa.json文件中scripts对象中有build属性,当我们执行npm run build时,就执行build对应的"node build/build.js"脚本 build完成后显示 进入项目文件夹,找到dist文件夹,这些是打包后产生的文件 2.webpack打包过程中会将css和js文件单独提取出来,且会根据path存放进相应的文件夹下,形成如上图的根目录,文件名是根据内容产生的哈希值,文件内容改变

Vue项目webpack打包部署到服务器

Vue项目webpack打包部署到服务器 必须要配置的就是/config/index.js 在vue-cli webpack的模板下的/config/index.[js](http://lib.csdn.net/base/javascript "JavaScript知识库"),我们可以看到assetsPublicPath这个键,并且这个东西还出现了两次,我第一次打包的时候,只是修改了最下面的assetsPublicPath,将它从'/'变为了./,然后我就执行了npm run buil