vue3学习09之devServer和vueCLI

116 阅读1分钟

webpack热更新

webpack watch

在该模式下,webpack依赖图中的文件,只要有一个发生了更新,那么代码将被重新编译

  1. 在导出的配置中,添加watch:true;
  2. 在启动webpack的命令中,添加--watch的标识;

在package.json中,添加

  "scripts": {
    "build": "webpack --watch"
  },

webpak-cli会去帮助处理

webpack-dev-server

上述的方式可以监听文件的变化,但是事实上它本身没有自动刷新浏览器的功能的。

安装webpack-dev-server

npm install webpack-dev-server -D
  "scripts": {
    "build": "webpack",
    "serve": "webpack serve"
  },

执行npm run serve 会创建一个地址,基于express框架

devServer配置

在webpack.config.js中添加devServer可以修改端口号、服务器地址等信息

  devServer: {
    hot: true,    //热模块替换,当一个模块改变时,只改变那个模块下的内容
    port: "6769",   //端口号
    open: true,   //自动打开浏览器
    compress: true,   //开启gzip压缩,但好像不开启默认gzip?
    proxy: {
      "/api": {
        target: "http://localhost:8888",  //对于'/api/moment'这个地址会映射到'http://localhost:8888/api/moment'
        pathRewrite: {
          "^/api": ""    //路径重写.对于'/api/moment'这个地址会映射到'http://localhost:8888/moment'
        },
        secure: false,    //默认情况不接收转发到https服务器上,如果希望支持,可以设置为false
        changeOrigin: true  //一般设置true
      }   

    }

  },

resolve

webpack.config.js中配置

  resolve: {
    extensions: [".js",".json", ".vue", ".ts", ".jsx", ".tsx"],  //引入文件的时候就不用写后缀名
    alias: {
      "@": path.resolve(__dirname,"./src")    //@替代src下文件
    }
  },

区分开发及生产环境 创建不同的config.js

  "scripts": {
    "build": "webpack --config ./config/webpack.prod.config.js",
    "serve": "webpack serve --config ./config/webpack.prod.config.js"
  },

在命令中指定执行哪个config文件