vue.js 已使用与API架构不匹配的选项对象初始化开发服务器,- options具有未知属性“public”

zmeyuzjn  于 2023-03-03  发布在  Vue.js
关注(0)|答案(1)|浏览(235)

链接django和vuej时出错。

    • 在我的vue.config.js文件中:**
const BundleTracker = require('webpack-bundle-tracker');

module.exports = {
  publicPath: 'http://127.0.0.1:8080/',
  outputDir: './dist/',

  chainWebpack: config => {
    config.optimization.splitChunks(false)

    config.plugin('BundleTracker').use(BundleTracker, [{filename: './webpack-stats.json'}])

    config.devServer.public('http://0.0.0.0:8080').host('0.0.0.0').port(8080).https(false).headers({"Access-Control-Allow-Origin":["\*"]})
  },

  pages: {
    index: 'src/main.js'
  }
}
    • 这是命令错误。**

npm运行服务
django-vue@0.1.0服务vue-cli-服务服务
信息正在启动开发服务器...错误验证错误:选项对象无效。已使用与API架构不匹配的选项对象初始化开发服务器。-options具有未知属性"public"。这些属性有效:对象{允许的主机?、bonjour?、客户端?、压缩?、设备中间件?、头?、历史记录ApiFallback?、主机?、热?、http2?、https?、ipc?、实时重新加载?、magicHtml?、设置后中间件?、设置前中间件?、侦听?、打开?、端口?、代理?、服务器?、设置退出信号?、设置中间件?、静态?、监视文件?、网络套接字服务器?}验证错误:选项对象无效。已使用与API架构不匹配的选项对象初始化开发服务器。

  • 选项具有未知属性"public"。这些属性有效:对象{允许的主机?、bonjour?、客户端?、压缩?、设备中间件?、头?、历史ApiFallback?、主机?、热?、http2?、https?、ipc?、实时重新加载?、magicHtml?、设置后中间件?、设置前中间件?、侦听?、打开?、端口?、代理?、服务器?、设置退出信号?、设置中间件?、静态?、监视文件?、webSocketServer?}在验证(/用户/byengju/文档/01.项目/数据类/django-vue/节点_模块/模式-实用程序/dist/validate. js:115:11)在新服务器(/用户/byengju/文档/01.项目/数据类/django-vue/节点_模块/webpack-dev-server/lib/服务器. js:231:5)在服务器(/用户/byengju/文档/01.项目/数据类/django-vue/节点_模块/@vue/cli-service/lib/命令/服务器. js:194:20)在进程。进程标记和拒绝(节点:内部/进程/任务队列:95:5)

我该怎么解决呢?

rsl1atfo

rsl1atfo1#

如错误所述,public不是有效的属性,因为它是webpack-dev-server v3的属性,但根据错误消息和可用属性名列表,显然您使用的是webpack-dev-server v4
问问你自己:您是否需要指定默认的devserver地址0.0.0.0:8080(localhost:8080)?尝试删除该属性并测试您的应用是否正常工作。通常只有代理或WebSocket地址才需要这样的属性。从v3到v4的migration guide甚至会说:
已删除public、sockHost、sockPath和sockPort选项,以支持客户端。webSocketURL选项:

版本3:

module.exports = {
  devServer: {
    public: "ws://localhost:8080",
  },
};
module.exports = {
  devServer: {
    sockHost: "0.0.0.0",
    sockPath: "/ws",
    sockPort: 8080,
  },
};

版本4:

module.exports = {
  devServer: {
    client: {
      // Can be `string`:
      //
      // To get protocol/hostname/port from browser
      // webSocketURL: 'auto://0.0.0.0:0/ws'
      webSocketURL: {
        hostname: "0.0.0.0",
        pathname: "/ws",
        port: 8080,
      },
    },
  },
};

相关问题