编程逻辑&工程化

webpack&vue编程逻辑,工程化相关扩展

问题:浏览器如何解析vue文件?

原生JavaScript实现基于vue 2.xv-ifv-show

单文件组件转为符合浏览器解析规则的JS文件:

  1. 创建服务应用,即node

  2. node应用上通过一个程序将.vue转为.js

  3. es6语法转为es5,正常跑node程序

  4. lesssass语法需要通过node程序转为css

  5. node里有fs里有许多方法可以改变

  6. 最终形成完整的html,包括css的引入

问题:如何完成?

可以利用webpack

安装依赖:

  1. npm i -D
  2. webpack@4
  3. webpack-cli@3
  4. webpack-dev-server@3
  5. style-loader@2
  6. css-loader@5
  7. //处理css和js文件引用html
  8. html-webpack-plugin@4.5.0

配置webpack.config.js

  1. const { resolve } = require('path');
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. module.exports = {
  4. mode: 'development',
  5. entry: resolve(__dirname, 'src/main.js'),
  6. output: {
  7. filename: 'main.js',
  8. path: resolve(__dirname, 'dist')
  9. },
  10. resolve: {
  11. //节省后缀
  12. extensions: ['.js', '.vue']
  13. },
  14. //依赖查找顺序规则
  15. resolveLoader: {
  16. modules: [
  17. 'node_modules',
  18. [...]
  19. ]
  20. },
  21. module: {
  22. rules: [
  23. {
  24. test: /.vue$/i,
  25. loader: 'vue-loader'
  26. },
  27. {
  28. test: /.css$/i,
  29. loader: ['style-loader', 'css-loader']
  30. }
  31. ]
  32. },
  33. plugins: [
  34. new HtmlWebpackPlugin({
  35. //处理模板
  36. template: resolve(__dirname, 'public/index.html')
  37. })
  38. ]
  39. }

问题:如何处理vue文件?

问题:如何将template里的字符串

源码地址: https://gitee.com/kevinleeeee/vue-loader-webpack-vshow-vif-demo