配置 dev-server

webpack-dev-server

  1. 安装依赖包html

    yarn add webpack-dev-server -D
  2. 经常使用配置node

    devServer: {
      contentBase: path.join(__dirname, 'static'),    // 告诉服务器从哪里提供内容(默认当前工做目录)
      openPage: 'views/index.html',  // 指定默认启动浏览器时打开的页面
      index: 'views/index.html',  // 指定首页位置
      watchContentBase: true, // contentBase下文件变更将reload页面(默认false)
      host: 'localhost', // 默认localhost,想外部可访问用'0.0.0.0'
      port: 8080, // 默认8080
      inline: true, // 能够监控js变化
      hot: true, // 热启动
      open: true, // 启动时自动打开浏览器(指定打开chrome,open: 'Google Chrome')
      compress: true, // 一切服务都启用gzip 压缩
      disableHostCheck: true, // true:不进行host检查
      quiet: false,
      https: false,
      clientLogLevel: 'none',
      stats: { // 设置控制台的提示信息
        chunks: false,
        children: false,
        modules: false,
        entrypoints: false, // 是否输出入口信息
        warnings: false,
        performance: false, // 是否输出webpack建议(如文件体积大小)
      },
      historyApiFallback: {
        disableDotRule: true,
      },
      watchOptions: {
        ignored: /node_modules/, // 略过node_modules目录
      },
      proxy: { // 接口代理(这段配置更推荐:写到package.json,再引入到这里)
        "/api-dev": {
          "target": "http://api.test.xxx.com",
          "secure": false,
          "changeOrigin": true,
          "pathRewrite": { // 将url上的某段重写(例如此处是将 api-dev 替换成了空)
            "^/api-dev": ""
          }
        }
      },
      before(app) { },
    }
    根据目录结构的不一样,contentBase、openPage 参数要配置合适的值,不然运行时应该不会马上访问到你的首页; 同时要注意你的 publicPath,静态资源打包后生成的路径是一个须要思考的点,这与你的目录结构有关。
  3. package.json 添加运行命令webpack

    "scripts": {
      "dev": "cross-env BUILD_ENV=development webpack-dev-server --mode development --colors --profile"
    }
    不一样操做系统传递参数的形式不同,cross-env 能够抹平这个平台差别。
  4. 实用技巧:web

    1. dev-server 的代码一般在内存中,但也能够写入硬盘,产出实体文件:chrome

      {
        writeToDisk: true,
      }

      一般能够用于代理映射文件调试,编译时会产出许多带 hash 的js 文件,不带 hash 的文件一样也是实时编译的json

    2. 有的时候,启动服务时,想要默认使用本地的 ip 地址打开:api

      {
        disableHostCheck: true, // true:不进行host检查
        // useLocalIp: true, // 建议不在这里配置
        // host: '0.0.0.0', // 建议不在这里配置
      }

      同时还须要将 host 配置为 0.0.0.0,这个配置建议在 scripts 命令中追加,而非在配置中写死,不然未来不想要这种方式往回改折腾,取巧一点,配个新命令:浏览器

      "dev-ip": "yarn run dev --host 0.0.0.0 --useLocalIp",
    3. 有时启动的时候但愿是指定的调试域名,例如:local.test.baidu.combash

      {
        open: true,
        public: 'local.test.baidu.com:8080', // 须要带上端口
        port: 8080,
      }

      同时须要将 127.0.0.1 修改成指定的 host,能够借助 iHost 等工具去修改,各个工具大同小异,格式以下:服务器

      127.0.0.1 local.test.baidu.com

      服务启动后将自动打开 local.test.baidu.com:8080 访问

    4. dev-server 调试时,启动 gzip 压缩:

      {
        compress: true,
      }
相关文章
相关标签/搜索