浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法

yizhihongxing

下面是详细讲解“浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法”的完整攻略。

问题描述

Vue项目中经常使用Webpack对.js、.vue等文件进行打包处理,生成.bundle.js、.html等文件后,如何通过本地服务器打开这些文件并正确运行成为一个问题。当我们通过本地文件系统直接打开.bundle.js文件时,会因为文件内部引用的其他资源路径不正确,导致页面功能无法使用。下面将针对这个问题进行详细说明。

方案解决

我们可以通过在本地启动一个服务器,来达到正确运行打包后文件的目的,比如使用Node.js中的http-server库:

首先确保全局安装了http-server

npm install -g http-server

启动服务器,并指定启动的文件夹为打包后文件夹dist

http-server ./dist

这样打开浏览器,并访问服务器的地址就可以查看页面了。

但是,这种方式还没有解决内部引用其他资源的路径问题。

我们可以通过修改Webpack配置文件,增加publicPath选项,使模块内部引用的文件路径变为绝对路径。

具体配置可以在webpack.config.js文件的output选项中添加:

output: {
  ...
  publicPath: '/'
}

这样在Webpack打包时,内部引用其他资源的路径就会变为以/开头的绝对路径,不会再因为相对路径问题导致引用失败。

示例说明

示例一

我们可以在Vue.js官方文档的“实例”中,选择任意一个实例,比如Simple example(https://vuejs.org/v2/examples/basic.html),将其保存到本地,利用Webpack进行打包。以下是打包前和打包后的文件结构:

├── basic.html
├── index.js
├── node_modules
│   ├── ...
├── package-lock.json
├── package.json
├── webpack.config.js

在这个例子中,我们的入口文件为index.js,运行命令:

webpack

我们会发现在dist目录下生成了一个bundle.js文件和一个index.html文件,执行以下命令启动本地服务:

http-server ./dist

在浏览器中开启http://127.0.0.1:8080/index.html,我们就可以看到页面了。

示例二

在上一个示例中,我们只需要能够将打包后的html作为模板,动态插入bundle.js即可。那么我们就可以通过Webpack提供的html-webpack-plugin插件,来生成模板文件和自动插入bundle.js

我们可以建立一个新项目,并添加以下文件:

.
├── dist // 打包后生成的文件夹
├── package.json
├── src // 源码文件夹
│   ├── index.js // 入口文件
│   └── index.html // 用于生成模板的文件
└── webpack.config.js

其中src/index.js代码内容为:

console.log('Hello world!');

src/index.html代码内容为:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>webpack demo</title>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>

webpack.config.js代码内容为:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './src/index.js',
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    plugins: [
        new HtmlWebpackPlugin({
            title: 'My Webpack App',
            template: './src/index.html'
        })
    ]
};

这样,在运行命令:

webpack

打包完成后,我们就可以在dist目录下找到生成的index.html文件和bundle.js文件,并执行以下命令来启动本地服务器:

http-server ./dist

在浏览器中访问http://127.0.0.1:8080,我们就能够看到运行结果了。

通过这两个示例,我们可以发现,打包后的文件不能直接放在本地系统中使用,而需要通过本地服务器进行打开。同时,我们也可以通过修改Webpack配置来解决内部资源引用路径的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue.js 微信支付前端代码分享

    Vue.js 微信支付前端代码分享攻略 简介 微信支付作为国内移动支付的主流之一,对于很多电商的前端开发来说是必不可少的一步。Vue.js 作为一门快速且易于学习的前端框架,也非常适合用来构建微信支付的功能。 本攻略旨在为 Vue.js 开发者提供微信支付的具体实现方法。 前置条件 在开始之前,请确保您已经实现了微信支付后端与微信公众号的对接,生成了微信支付…

    Vue 2023年5月28日
    00
  • Vue3的7种种组件通信详情

    下面将详细讲解Vue3的7种组件通信方式的完整攻略。 1. 父子组件通信 父子组件通信是指从父组件向子组件传递数据或者事件。在Vue3中我们可以使用props属性向子组件传递变量,或使用$emit方法接收子组件的事件通知。 以下是一个简单的示例: <!– 父组件 –> <template> <div> <!– …

    Vue 2023年5月28日
    00
  • vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)

    下面我就来详细讲解一下“vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)”的完整攻略。 1. 插件简介 这个插件是基于Vue 2.0实现的倒计时插件,可以实现倒计时的功能,并且不受时间戳、刷新、跳转等因素的影响。它的使用比较简单,只需要在Vue实例中引入即可。 2. 安装 可以通过npm进行安装: npm install vue-countdow…

    Vue 2023年5月29日
    00
  • Vue必学知识点之forEach()的使用

    Vue必学知识点之forEach()的使用 在Vue.js开发中,我们经常需要遍历数组或列表中的元素,Vue提供了很多遍历处理数组的方法,其中之一就是forEach()方法。本文将详细介绍Vue中forEach()方法的用法和示例。 forEach()方法的用法 forEach()方法用于遍历数组中的元素,对每一个元素执行指定操作。具体语法如下: array…

    Vue 2023年5月27日
    00
  • Vue中判断语句与循环语句基础用法及v-if和v-for的注意事项详解

    来讲解一下Vue中判断语句和循环语句的基础用法及其注意事项。 基础用法 Vue中的判断语句 Vue中的判断语句有两种:v-if和v-show。它们的作用都是根据某个条件来控制html元素的显示与隐藏,不同的是v-if是真正的条件渲染,如果条件为false,那么这个元素就不会被渲染在DOM中,而v-show则是简单地控制元素的display属性。 使用v-if…

    Vue 2023年5月27日
    00
  • vue+iview实现文件上传

    下面是详细讲解”vue+iview实现文件上传”的完整攻略: 准备工作 在项目中安装vue和iview npm install vue iview –save 在main.js中引入vue和iview,并配置相关的组件 import Vue from ‘vue’ import iView from ‘iview’ import ‘iview/dist/st…

    Vue 2023年5月28日
    00
  • vue中filters 传入两个参数 / 使用两个filters的实现方法

    在 Vue 中,可以使用 filter 过滤器来处理模板中的数据。filter 在显示数据之前对其进行处理,比如对字符串格式化、将时间格式化等等。 在 Vue 中,我们可以定义一个 filter 来处理一些数据,此时这个 filter 就是一个全局的 filter。可以被任何组件进行调用。 现在我们来详细讲解“vue中filters 传入两个参数 / 使用两…

    Vue 2023年5月27日
    00
  • vue3+ts+vite+electron搭建桌面应用的过程

    下面是关于使用Vue3、TypeScript、Vite和Electron搭建桌面应用的完整攻略。 搭建步骤 1. 创建项目工程 首先需要安装Vite脚手架,在终端中输入以下命令安装: npm install -g create-vite-app 安装完成后,通过以下命令创建项目工程: create-vite-app my-project 此时会询问你需要使用…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部