zoukankan      html  css  js  c++  java
  • vue-cli2 脚手架内配置

    Webpack 官方文档  :  https://www.webpackjs.com/concepts/ (文档中的 指南 选项下有详细的使用教程)


    1、 可以将webpack看做是基于node的一个应用(打包代码等功能),按照webpack的语法规则一些资源加载/打包成js文件。

    命令行中错误,根据里面的提醒里面有对应哪个网站上看哪里错误就可以了。

    2、可以将webpack看做用node开发从来的一款应用程序,webpack解析js程序,继续相应的工作。

    3、什么是WebPack,为什么要使用它?   :  https://www.cnblogs.com/-walker/p/6056529.html

    4、 webpack 入门教程  :  https://segmentfault.com/a/1190000006178770 或 https://www.jianshu.com/p/90e1049a5677(推荐)

      练习代码  :  https://gitee.com/wufei3623/webpack_building_environment.git (wufei3623 的 码云)

    5、node是一个js运行环境。基于node的所有应用(如webpack、gulp),配置应用的js都是给node运行的而不是浏览器运行的。

       项目中的js文件是给浏览器运行的,但不是源文件,而是通过加载器编译(相当于翻译)之后的代码给浏览器运行的。 

    6、webpack.config.js配置文件中出现的代码解读:

      a、 var path=require('path') ;

      解读: 引入Node.js path 模块提供的一些方法。  http://www.runoob.com/nodejs/nodejs-path-module.html 

        b、 __dirname 

      解读:__dirname 总是指向被执行 js 文件的绝对路径。  https://blog.csdn.net/zsensei/article/details/79094714

    7、 从vue-cli学webpack配置  : https://www.jianshu.com/p/535fccf9ccbd

    8、vue-cli脚手架中webpack配置基础文件详解  :  https://segmentfault.com/a/1190000014804826

    9、如果是多页面的应用,webpack可以设置多个入口点,将每个页面的js分别打包,在页面中引入

    10、webpack将每个js文件看成一个模块(与Node.js类似),在不同的模块下,即使变量名相同,也不会冲突

    11、模块之间共享变量需要在模块中进行导入与导出操作 (本质这种导入导出之后只是共享变量的值,因为导入的时候已经重新赋值了,即使变量名一样)

    12、在多个文件中import同一个文件,webpack不会多次打包  :  https://segmentfault.com/a/1190000008521430

    13、使用webpack快速搭建最简单ES6环境   :  https://blog.csdn.net/panyang01/article/details/69396919 (注意:一定要配置 .babelrc文件,不然es6语法,编译后还是es6语法)

    14、(个人猜测)vue-cli中webpack编译时,碰到vue-cli的环境下环境信息的对象,会把这个对象属性 编译成对应的值,代替这个对象属性的写法,放在编译后的代码中(即编译后的代码中不会存在这个对象属性的代码)。如:下面红色部分的代码,webpack在编译时就会把它用具体的环境值替换掉。

    export const STAGE_BASE_URL = process.env.NODE_ENV === 'development' ? '/api1/' : 'h5/api1/stage'

    开发环境下,编译后代码应该是(export const编译后是什么代码,这里不做探讨)。因为在浏览器中是不存在  process.env.NODE_ENV 这个对象属性的。所以编译后不会存在

    export const STAGE_BASE_URL = 'development' === 'development' ? '/api1/' : 'h5/api1/stage'

     推论:process对象在全局中都可以使用,但是是在浏览器的控制台中输入 process ,提示 process  是未定义的。表明 process 编译后并不存在,那么应该编译成一个字符串了。

    15、webpack学习心得  : https://www.jianshu.com/p/c12706b61629

    16、webpack的代理、抓包:https://blog.csdn.net/a0405221/article/details/85234149 或 https://juejin.im/post/5c6baf776fb9a049f746c335(onProxyReq 请求发送前触发的事件;onProxyRes 请求响应后触发的事件)

      为什么使用这个: webpack是没有日志的,代理某个API接口时,如果调用失败(postman上调用目标接口是有效的)。则无法确认代理后请求的目标地址url是不是正确的,很难排除错误原因。

       但是 通过 onProxyRes 事件就可以知道,当前 ajax请求有没有触发这个代理请求,如果触发了代理请求,可以知道代理后目标服务器的url和请求参数; 如果没有触发请求这个代理请求,要么是没有匹配到代理的字段,要么是被其他的代理字段先匹配到了,

      比如两个匹配字段 "/api" 和 "/apireq",如果代理的字段是apireq,则会被api这个字段给代理了,触发了 "/api" 的代理事件,但没有触发"/apireq"的代理事件。(亲测 有效)

     proxyTable: {
          '/api1': {
            target: 'https://test.iconntech.com',
            changeOrigin: true,
            pathRewrite: {
              '^/api1': '/'
            },
            onProxyReq: function(onProxyReq, req, res) { // req和res分别是Express框架封装的Request对象和Response对象
    
              console.log('代理字段', '/api1');
              console.log('前端请求url', onProxyReq._headers.origin + req.originalUrl);  // 这里的输出是自己配的,仅做参考
              console.log('目标请求url1', onProxyReq.agent.protocol +"//" + onProxyReq._headers.host + req.url); // 代理配置的target只有host,没有后面的目录
              console.log('目标请求url2', onProxyReq.agent.protocol +"//" + onProxyReq._headers.host + onProxyReq.path); // 代理配置的target,有二级目录
            },
            onProxyRes: function(){
              console.log('2');
            }
          }
        }

    17、webpack 中 import 导入后面的路径和文件名  和 文件真实的路径文件名  大小必须要一致

       在 window上,大小写不敏感。大小写不一致,一般都不会出错。在linux系统上 大小写敏感,大小写不一致就会报错。代码部署的时候,一般都是在服务端(linux系统)上打包部署的

     

     

    webpack安装出现的问题:

    1.One CLI for webpack must be installed  :https://blog.csdn.net/gishys/article/details/80567727  或   https://www.cnblogs.com/1rookie/p/9153237.html  

          或  https://blog.csdn.net/zengibm/article/details/79914144 (推荐) 

       其它的解决方案可以安装指定的webpack版本(低于4.0.0版本的)

    npm install webpack@3.0.0 -g 
  • 相关阅读:
    c语言程序设计(学生成绩管理系统)————提供给计算机系c语言初学者参考
    C语言之指针排序
    C语言之冒泡法一
    C语言之统计字符
    C语言之while输出菱形
    C语言之do_while输出菱形
    C语言之素数的判断
    C语言之输出菱形
    基于RT-THREAD的定时鱼缸喂食器设计
    dx/dy=1/y’求其二阶导
  • 原文地址:https://www.cnblogs.com/wfblog/p/8631217.html
Copyright © 2011-2022 走看看