Vue+webpack基础配置分享

最近在学习webpack,跟着课程一个单页面应用,在这里记录一下。这个部分主要讲了如何配置webpack的环境,以及webpack dev的配置。记录比较粗略,后续会更新。本文主要和大家介绍了vue+webpack项目基础配置教程,需要的朋友可以参考下,希望能帮助到大家。

1.开发环境:vscode,node.js,vue.js,webpack

大家自己安装一下node.js可以参考菜鸟教程

使用的IDE是 VScode

2.项目初始化

立即学习“前端免费学习笔记(深入)”;

快捷键ctrl+` 打开vscode控制台

Vue+webpack基础配置分享 

vscode界面

2.1安装webpack vue vue-loader

npm initnpm i webpack vue vue-loader

登录后复制

npm 出现warn提醒你需要依赖,按照提示进行安装

Vue+webpack基础配置分享 

warn

安装相应的loader

npm i css-loader vue-template-compiler

登录后复制

2.2配置webpack可以加载app.vue文件

首先创建src文件夹,并在其下创建app.vue最为主代码文件,index.js作为入口文件。

Vue+webpack基础配置分享 

基础文件

app.vue文件内容如下:

 

{{text}}

export default{ data(){ return { text: 'abc' } } } #test{ color: red; }

登录后复制

在src同级目录下

创建webpack.config.js文件,配置入口entry,输出output

Vue+webpack基础配置分享 

创建package.json文件和webpack.config.js文件

//webpack.config.jsconst path = require('path')module.exports = { entry: path.join(__dirname,'src/index.js'), //调用Index.js作为入口文件 output: { //打包完的js文件会在bundle.js中,这个文件待会会自动生成的 filename: 'bundle.js',  path: path.join(__dirname,'dist') //用来存放bundle.js文件的地址,自己定义 }, module: { rules: [{  test: /.vue$/,  loader: 'vue-loader' }] }}

登录后复制

index.js文件作为入口

//index.jsimport Vue from 'vue'import App from './app.vue'const root = document.createElement('p')document.body.appendChild(root)new Vue({ render: (h) => h(App)}).$mount(root)

登录后复制

配置package.json文件中的scripts命令,添加build

"scripts": { "test": "echo "Error: no test specified" && exit 1", "build": "webpack --config webpack.config.js" },

登录后复制

在控制台输入npm run build 命令进行打包,打包成功后如图

Vue+webpack基础配置分享 

webpack打包完成后

2.3配置webpack可以加载非Js文件

webpack.config.js文件具体配置

在webpack.config.js中的module: {}模块中添加rules:[],可以设置webpack需要识别的文件类型,之前已经设置了vue文件类型,好需要添加css/图片。

//webpack.config.js module: { rules: [ { test: /.vue$/, loader: 'vue-loader' }, { test: /.css$/, use:[ 'style-loader', 'css-loader' ] }, { test: /.(gif|jpg|png|svg)$/, use: [{  loader: 'url-loader',  options: {  limit: 1024,  name:'[name].[ext]'  } }] }] }

登录后复制

在控制台执行命令,安装相应的loader

npm i style-loader css-loader url-loader file-loader

登录后复制

测试非js类型文件打包效果

目标:在js代码中import这些非js类型的文件中的内容

再src子目录下,创建测试文件test.css。以及在images中放入jpg图片代用(一张就可以了,emmm我当时放多了就先不删了)

Vue+webpack基础配置分享 

src下文件结构

在Index.js中import这些非js文件。

//index.jsimport Vue from 'vue'import App from './app.vue'import './assets/styles/test.css' //import css文件import './assets/images/0.jpg' //import 图片const root = document.createElement('p')document.body.appendChild(root)new Vue({ render: (h) => h(App)}).$mount(root)

登录后复制

最后在控制台执行 npm run build 测试结果。

打包成功图片类似上面。

2.4关于css预处理器。stylus的配置和测试

stylus是css的一种预处理器,文件类型是 .styl 我们这里对其进行配置

首先在webpack.config.js文件中的rules:[]模块中跟上面一样,加入如下代码,让其可以识别.styl文件

//webpack.config.js  {  test:/.styl$/,  use: [   'style-loader',   'css-loader',   'stylus-loader'  ]  }

登录后复制

然后在控制台安装stylus所需的loader文件

npm i style-loader stylus-loader

登录后复制

最后在控制台执行 npm run build 测试结果。

2.5配置webpack-dev-server:专门用在开发环境的打包

因为正式环境和我们的开发环境有所区别,所以需要配置dev用来区分

首先,安装 webpack-dev-server

npm i webpack-dev-server

登录后复制

然后, 修改package.json文件 ,在build下面添加dev配置

Vue+webpack基础配置分享 

package.json文件配置

然后,修改webpack.config.js

在全局添加target:’web’

Vue+webpack基础配置分享 

config.js

因为这个文件要同时用在开发环境和正式环境,所以要加一个环境判断,在跑npm的时候添加变量标识不同环境。

因为在windows和mac环境下的命令会不同,这里安装cross-env 包,使得在不同开发环境下命令相同。

npm i cross-env

登录后复制

再次修改package.json文件,在“build:”和“dev:”行添加dev命令

cross-env NODE_ENV=development  后面不变

Vue+webpack基础配置分享 

package.json文件build

然后,在webpack.config.js文件中进行判断。

首先,配置config.devServer

webpack2之后就可以直接用config.devServer进行配置了。

更改文件头部几行代码

Vue+webpack基础配置分享 

在文件的最后加上如下代码

Vue+webpack基础配置分享 

config.devServer

注意:
host:’0.0.0.0’不要直接写localhost,这样别人的电脑就访问不了了;port不要被占用,不然会打不开

最后.安装html-webpack-plugin插件使得html可以作为入口,自动包含JS

npm i html-webpack-plugin

登录后复制

修改webpack.config.js文件

Vue+webpack基础配置分享 

config.js

Vue+webpack基础配置分享 

config.js

至此,dev配置基本完成

控制台执行 npm run dev

npm run dev

登录后复制

打包成功的话就可以在浏览器中查看效果了,

如果出现错误,根据提示修改,注意端口是否占用。我的8000端口占用了,后来用了8080端口就好了

浏览器访问:localhost:8080,可以查看渲染效果。恩,背景图0.jpg是我爱豆23333。笔芯。注意左上角有红色的abc。

Vue+webpack基础配置分享 

浏览器效果

2.6最后还有一些东西要加在config.js中

最后还要加一些东西

1) historyFallback:{}

因为我们做的是单页应用,所以要加一下地址映射到入口index.html,这个先忽略

2) 热加载功能。

hot功能,可以实现局部渲染:比如你改了一个组件的代码,页面只重新渲染这个组件而不是整个页面进行渲染,不需要进行刷新操作。

3) 一些插件

webpack.HotModuleReplacementPlugin()启动hot功能

登录后复制

webpack.NoEmitOnErrorsPlugin()去除一些不必要的信息

4) 浏览器调试代码功能的工具

在浏览器中调试的时候,代码不会转码。

config.devtool = “#cheap-module-evel-source-map”

登录后复制

Vue+webpack基础配置分享 

最后配置完成后,重新npm run dev一次

npm run dev

成功之后,可以在浏览器中测试热加载效果,修改app.vue文件中的text的内容,就可以看到左上角那个红色的字在变了emmmm

//app.vue 

{{text}}

export default{ data(){ return { text: 'abc' //打开浏览器,然后直接改这里就可以实时看到文字变化效果了。 } } } #test{ color: red; }

登录后复制

相关推荐:

实例详解vue-cli中的webpack配置

webpack配置方法小结

实例详解vue-cli优化的webpack配置

以上就是Vue+webpack基础配置分享的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2786253.html

(0)
上一篇 2025年3月8日 17:41:35
下一篇 2025年3月2日 21:17:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS操作剪贴板代码分享

    javascript可以轻松操作客户端剪贴板内容,不过只适用ie5以上浏览器。javascript可以使用window.clipboarddata对象处理剪贴板内容。保存到剪贴板的方法setdata(param1, param2)。本文主要…

    编程技术 2025年3月8日
    200
  • webpack无法通过IP地址访问localhost的问题

    1、问题描述: 今天用 webpack (v1.14.0)配置本地服务,为了能在移动端预览开发效果,需要通过 IP 地址生存二维码然后手机扫描访问。却发现不能通过 ip 访问 localhost。 2、解决方案: 经多方查询,在 npm r…

    编程技术 2025年3月8日
    200
  • webpack-dev-server远程访问配置教程

    本文主要为大家分享一篇webpack-dev-server远程访问配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 下面的package.json文件中配置的webpack-dev-server为…

    编程技术 2025年3月8日
    200
  • react、webpack、跨域代理多页面

    初学react,利用webpack进行工程化开发管理,遇到一些问题,如多页面处理,跨域代理的设置,如何同时引入使用jquery。第一次试水,简单写了一个表格组件。 先照着react官网提供的教程使用create-react-app创建rea…

    编程技术 2025年3月8日
    200
  • webpack的优化策略

    在我们构建单页面应用(vue, react)或封装插件时,很大机会用到webpack,这个javascript的打包工具.但项目代码日益增多时,webpack一些简单的配置会暴露种种弊端(打包时间长,代码大).以下是结合自身开发和学习web…

    编程技术 2025年3月8日
    200
  • js实现md5加密插件代码分享

    本文主要和大家分享js实现md5加密插件代码,希望能帮助到大家。 //使用方法://引入文件//var MD5=MD5.createMD5String(yourSrting);(function(globle,factory){//判断执行…

    编程技术 2025年3月8日
    200
  • JS抛物线动画操作实例分享

    在做无人便利小程序的项目中,某一天产品说要像某产商产品学习,给添加购物车增加抛物线小球动画。本文主要给大家详细分析了js抛物线动画制作过程以及相关的代码实例分享,有兴趣的朋友参考下。 先给大家看下效果图 分析 这种不固定起始位置的动画,自然…

    2025年3月8日
    200
  • JS实现随机数代码分享

    本文主要和大家分享js实现随机数代码分享,在制作网页或者小程序的时候经常用到随机数,作者整理了一个很简单的js生成随机数的程序,希望本文能帮助到大家。 我们先来看下本次源码的效果图 大家可以灵活运用,我们把具体JS代码分享给大家: nbsp…

    2025年3月8日
    200
  • div显示2秒后自动消失js代码分享

    本文我们主要和大家分享div显示2秒后自动消失js代码,利用settimeout(),settimeout()方法用于在指定的毫秒数后调用函数或计算表达式。希望能帮助到大家。 在做四象限的过程中会有提示的信息,但是想让提示信息在一定的时间后…

    2025年3月8日
    200
  • js栈、队列、链表数据结构的实现代码分享

    数据结构有讲过,栈是一种遵从后进先出原则的有序集合,书中对栈的形容非常到位,就像是堆盘子,先放的肯定在下面的位置,最上面的是才放的。给栈内添加元素,最先添加的在栈底,最后一个加进去的称为栈顶元素。 js实现栈及其方法 具体内容有 创建栈:在…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论