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

下面是详细讲解“浅谈在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中的计算属性和侦听属性

    当我们在使用Vue.js开发Web应用时,有时我们需要根据某些状态进行计算,计算属性和侦听属性是Vue.js为我们提供的两种响应式的计算机制。本文将详细讲解vue中的计算属性和侦听属性的完整攻略。 计算属性 什么是计算属性 计算属性指的是在模板中使用时,通过计算属性函数的返回值来得到一个新的值,这个新的值能够自动触发页面重新渲染。 计算属性的用法 计算属性的…

    Vue 2023年5月29日
    00
  • vue中使用vant的Toast轻提示报错的解决

    下面是针对“vue中使用vant的Toast轻提示报错的解决”的完整攻略。 问题描述 在Vue中使用Vant库中的Toast轻提示,出现了如下报错信息: TypeError: _this.$toast is not a function 问题原因 该错误的原因是缺少Toast组件的引入。在代码中我们尝试调用this.$toast,但由于没有引入对应的组件,所…

    Vue 2023年5月28日
    00
  • Vue 中使用vue2-highcharts实现top功能的示例

    使用vue2-highcharts实现top功能的完整攻略分为以下步骤: 步骤一:安装vue2-highcharts 在项目中需要使用到vue2-highcharts,所以首先需要安装它。可以使用npm安装,命令如下: npm install –save highcharts@6.1.0 vue2-highcharts@0.11.3 安装完成后,在main…

    Vue 2023年5月28日
    00
  • 使用vue-aplayer插件时出现的问题的解决

    使用vue-aplayer插件时出现问题的解决攻略: 1. 安装vue-aplayer插件 在项目中使用vue-aplayer插件时,首先需要通过npm安装该插件。 npm install vue-aplayer –save 2. 引入vue-aplayer插件 在Vue项目中,需要在main.js中引入vue-aplayer插件。 import Vue …

    Vue 2023年5月27日
    00
  • typescript nodejs 依赖注入实现方法代码详解

    下面是详细讲解“typescript nodejs 依赖注入实现方法代码详解”的完整攻略。 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,它使得某个类的依赖关系由外部配置文件来确定。在软件设计中,如果一个模块依赖于另一个模块,就需要在代码中显式地创建它们之间的关系。而依赖注入则是将这些依赖关系从代码中移除,从而…

    Vue 2023年5月28日
    00
  • Vue组件模板的几种书写形式(3种)

    当使用Vue.js构建应用程序时,组件是不可或缺的部分。Vue组件模板是描述组件外观的一种结构,它可以通过多种方式进行书写。本文将介绍Vue组件模板的三种常见书写形式。 1. 渲染函数形式 在Vue中,我们可以使用渲染函数来动态生成组件模板,而不是将模板作为字符串传递。渲染函数形式使用JavaScript来构建组件模板,具有更高的灵活性和可复用性。下面是一个…

    Vue 2023年5月28日
    00
  • vue使用反向代理解决跨域问题方案

    使用反向代理可以解决vue应用中遇到的跨域问题。下面是具体的攻略: 1. 安装http-proxy-middleware 在vue cli 3的脚手架中,已经默认安装了http-proxy-middleware依赖,无需再次安装。如果是手动创建的vue项目,则需要使用npm或yarn进行安装: npm install http-proxy-middlewar…

    Vue 2023年5月28日
    00
  • vue-cli中实现响应式布局的方法

    当我们使用Vue-cli构建一个项目时,可以选择一些预设好的模板,比如使用vue-init webpack模板,就会得到一个默认的项目结构。我们可以在此基础上选择性的添加我们需要的库和工具,比如Sass﹑Stylus等CSS预处理器来实现响应式布局。 以下是一些实现响应式布局的方法: 1. 使用css@media查询 media queries是css3最强…

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