webpack设置

打印 上一主题 下一主题

主题 784|帖子 784|积分 2352

4-3vue-loader测试_哔哩哔哩_bilibili
一.新建文件夹vue_todo,vscode打开


  
  二.ctrl+`打开终端,输入npm init -y,快速天生一个默认的package.json文件

  


  之后左边出现项目初始化文件package.json
  
  三.接下来必要webpack完成打包,所以安装webpack和webpack-cli
(-D是安装开辟环境依赖,是--save-dev的简写)


  
  四.编写主页文件index.html,div标签id为app

  五.创建src目次,在src目次下创建main.js作为项目入口文件

  1.导入vue
  2.new关键字创建vue根实例
  

  • el:'#app' 接管index.html中id为app的元素内容
  • components:{App:App} 注册App组件
  • 在template标签中渲染App组件标签
  
  要实现1,则要安装vue , 终端输入 npm install  vue
  

  安装完成之后出现
  

  然后impotr导入vue对象
  

  要挂载App组件,先要创建App组件
  在src文件夹下新建
  


index.html主页文件
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>todo应用</title>
  7. </head>
  8. <body>
  9.   <div id="app"></div>
  10. </body>
  11. </html>
复制代码
main.js项目入口文件
  1. // 一.创建Vue根实例,导入vue
  2. import Vue from 'vue'
  3. // 导入App组件
  4. import App from './App.vue'
  5. // new关键字创建vue根实例
  6. new Vue({
  7.   el: '#app', //接管index.html中id为app的元素内容
  8.   components:{
  9.     // 组件名:组件对象(组件名是自己起的,组件对象是导入的)
  10.     App:App //键和值相同可以直接写为App
  11.   }, //有了App名称,就可以在template中渲染这个标签
  12.   template: '<App/>' //App是组件名,在template中渲染这个标签
  13. })
  14. // .挂载App组件
复制代码
App.vue根组件
  1. <template>
  2.   <div>App</div>
  3. </template>
  4. <script>
  5. </script>
  6. <style>
  7. </style>
复制代码
总而言之,
  就是main.js项目入口文件导入并创建vue实例
  

  • 实例接管了index.html主页文件(以id的方式)
  • 注册挂载App根组件(在components)
    在template标签中渲染根组件<App />
  
  
 
     在index.html文件中引入main.js测试

  在index.html文件的script中导入maIn.js文件
  欣赏器打开index.html发现报错,不能识别main.js中的import等内容
  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <title>todo应用</title>
  7. </head>
  8. <body>
  9.   <div id="app"></div>
  10.   <script src="./src/main.js"></script>
  11. </body>
  12. </html>
复制代码

  为了使webpack举行正常解析,这时就必要利用webpack将源代码举行打包

  1.在工作目次下,新建webpack.config.js默认设置文件
  2.利用module.exports = { } 导出一个对象,该对象是webpack的一个设置。改设置有最基本俩
  

  • 打包入口文件 ertry(告诉webpack从哪个文件夹开始打包,从src的main.js开始打包)
  • 打包出口文件output(将所有文件天生的文件放到哪里,指定filename,path指定打包的绝对路径,所以必要node提供的path模块)
  1. // 导入path模块
  2. const path = require('path')
  3. module.exports = {
  4.   // 打包入口
  5.   entry: './src/main.js',
  6.   // 打包出口
  7.   output: {
  8.     filename: 'bundle.js',
  9.     path: path.resolve(__dirname, 'dist') //在当前目录的绝对路径下指定dist这个目录
  10.   }
  11. }
复制代码
也就是在根目次下创建了一个dist目次,打包天生的的文件叫做bundle.js

利用webpack下令完成打包的过程


  npx webpack在node_modules下找webpack并实行,实行的该webpack就会去加载webpack.config.js的设置文件,根据指定的入口出口天生对应的文件

但是一般npx比较麻烦,所以在pack.json中编写脚本帮助完成下令
  

然后就能利用npm run bulid这个指令了,这个就是打包下令

注意,不要安装成vue3了,如今在学习Vue2,安装错误通过npm uninstall vue卸载,通过npm install  vue@2.6.11可以安装特定版本
  


npm run build安装出错,webpack不能解析vue文件,它只能解析打包js文件。所以必要通过第三方loader解析
  

  1. PS D:\vue框架学习\vue_todo> npm run build
  2. > vue_todo@1.0.0 build
  3. > webpack
  4.   ./src/App.vue 81 bytes [built] [code generated] [1 error]
  5. WARNING in configuration
  6. The 'mode' option has not been set, webpack will fallback to 'production' for this value.
  7. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
  8. You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/
  9. ERROR in ./src/App.vue 1:0
  10. Module parse failed: Unexpected token (1:0)
  11. You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
  12. > <template>
  13. |   <div>App</div>
  14. | </template>
  15. @ ./src/main.js 5:0-27 12:9-12
  16. webpack 5.96.1 compiled with 1 error and 1 warning in 1766 ms
复制代码
利用vue-loader来打包vue文件(vue-loader完成模板的编译)
  

  
  安装完成发现vue-loader依赖css-loader,然后又安装css-loader
  

  
  
接下来举行webpack干系设置
  从vue-loader@15开始,vue-loader必要在webpack中添加一个插件
  在webpack.config.js中设置打包规则
( 打包规则,test表现正则表达式,匹配以vue末了的文件,以vue-loader来打包)
  
  

  
设置好之后在webpack.config.js中写一个插件
  

  然后将该插件写入打包规则中
  


 
  1. // 导入path模块
  2. const path = require('path')
  3. // 导入vue-loader 的插件
  4. const VueLoaderPlugin = require('vue-loader/lib/plugin')
  5. module.exports = {
  6.   // 打包入口
  7.   entry: './src/main.js',
  8.   // 打包出口
  9.   output: {
  10.     filename: 'bundle.js',
  11.     path: path.resolve(__dirname, 'dist')
  12.   },
  13.   //打包规则,test表示正则表达式,匹配以vue结尾的文件,以vue-loader来打包
  14.   module: {
  15.     rules: [{
  16.       test: /.\vue$/,
  17.       loader: 'vue-loader'
  18.     }]
  19.   },
  20.   // 插件
  21.   plugins: [
  22.     new VueLoaderPlugin()
  23.   ]
  24. }
复制代码

设置好之后实行打包npm run build下令
  乐成之后,根目次出现dist文件夹,文件夹中有bundle.js文件
  

webpack设置完成之后必要指定webpack是用于生产环境还是开辟环境
  

这里指定webpack用于生产环境之后继承实行npm run build
  就能看到打包出来的文件巨细
  如果设置为开辟环境时,实行打包下令文件会大点
  

在主页文件index.html文件中引入bundle.js举行测试
  

  
  







 



 







免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

万万哇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表