m***@163.com
m***@163.com
  • 发布:2022-07-10 10:21
  • 更新:2023-08-23 16:52
  • 阅读:663

uni-app h5运行时报错

分类:uni-app

ERROR ValidationError: Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

  • options has an unknown property 'before'. These properties are valid:
    object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, server?, setupExitSignals?, setupMiddlewares?, static?, watchFiles?, webSocketServer? }
    ValidationError: Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

我的初步分析是服务器需要设置代理请求接口,于是我在manifest.json 文件中配置了 proxy,但是依然报这个错误,大家一起分析分析

2022-07-10 10:21 负责人:无 分享
已邀请:
DCloud_UNI_WZF

DCloud_UNI_WZF

看报错是配置了一个无效的 before,贴下代码或者提供下可复现 demo 吧

m***@163.com

m***@163.com (作者)

这是package.json 文件

{  
  "name": "uni_app",  
  "version": "1.0.0",  
  "private": true,  
  "scripts": {  
    "serve": "npm run dev:h5",  
    "build": "npm run build:h5",  
    "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",  
    "build:custom": "cross-env NODE_ENV=production uniapp-cli custom",  
    "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",  
    "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build",  
    "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build",  
    "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build",  
    "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build",  
    "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build",  
    "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build",  
    "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build",  
    "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build",  
    "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build",  
    "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build",  
    "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build",  
    "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch",  
    "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom",  
    "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve",  
    "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch",  
    "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch",  
    "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch",  
    "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch",  
    "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch",  
    "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch",  
    "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",  
    "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch",  
    "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch",  
    "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch",  
    "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch",  
    "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js",  
    "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js",  
    "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i",  
    "test:h5": "cross-env UNI_PLATFORM=h5 jest -i",  
    "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i",  
    "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i",  
    "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i"  
  },  
  "dependencies": {  
    "@dcloudio/uni-app-plus": "^2.0.1-34920220630001",  
    "@dcloudio/uni-h5": "^2.0.1-34920220630001",  
    "@dcloudio/uni-helper-json": "*",  
    "@dcloudio/uni-mp-360": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-alipay": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-baidu": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-qq": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-toutiao": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-vue": "^2.0.1-34920220630001",  
    "@dcloudio/uni-mp-weixin": "^2.0.1-34920220630001",  
    "@dcloudio/uni-quickapp-native": "^2.0.1-34920220630001",  
    "@dcloudio/uni-quickapp-webview": "^2.0.1-34920220630001",  
    "@dcloudio/uni-stat": "^2.0.1-34920220630001",  
    "@vue/shared": "^3.0.0",  
    "core-js": "^3.6.5",  
    "fibers": "^5.0.0",  
    "flyio": "^0.6.2",  
    "js-base64": "^3.7.2",  
    "js-md5": "^0.7.3",  
    "node-sass": "^4.14.1",  
    "regenerator-runtime": "^0.12.1",  
    "sass-loader": "^8.0.2",  
    "vue-puzzle-vcode": "^1.1.9",  
    "vue": "^2.6.11",  
    "vue-clipboard2": "^0.3.3",  
    "vuex": "^3.2.0"  
  },  
  "devDependencies": {  
    "@dcloudio/types": "*",  
    "@dcloudio/uni-automator": "^2.0.1-34920220630001",  
    "@dcloudio/uni-cli-i18n": "^2.0.1-34920220630001",  
    "@dcloudio/uni-cli-shared": "^2.0.1-34920220630001",  
    "@dcloudio/uni-i18n": "^2.0.1-34920220630001",  
    "@dcloudio/uni-migration": "^2.0.1-34920220630001",  
    "@dcloudio/uni-template-compiler": "^2.0.1-34920220630001",  
    "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.1-34920220630001",  
    "@dcloudio/vue-cli-plugin-uni": "^2.0.1-34920220630001",  
    "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.1-34920220630001",  
    "@dcloudio/webpack-uni-mp-loader": "^2.0.1-34920220630001",  
    "@dcloudio/webpack-uni-pages-loader": "^2.0.1-34920220630001",  
    "@vue/cli-plugin-babel": "~4.4.6",  
    "@vue/cli-service": "~4.4.6",  
    "babel-plugin-import": "^1.11.0",  
    "cross-env": "^7.0.2",  
    "jest": "^25.4.0",  
    "mini-types": "*",  
    "miniprogram-api-typings": "*",  
    "node-gyp": "^7.1.2",  
    "postcss-comment": "^2.0.0",  
    "vue-template-compiler": "^2.6.11"  
  },  
  "browserslist": [  
    "Android >= 4",  
    "ios >= 8"  
  ],  
  "uni-app": {  
    "scripts": {}  
  }  
}  

这是manifest.json 文件中的跨域配置

"h5" : {  
        "devServer" : {  
            "https" : false,  
            "port" : 8080,  
            "disableHostCheck" : true,  
            "proxy" : {  
                // 这里的/api标记了以/api开头的接口需要使用此代理,会将下方的target拼接到接口的最前面  
                "/api" : {  
                    "target" : "http://10.10.1.99:8089",    // 代理地址  
            "changeOrigin": true,                // 是否跨域  
            "secure": false,                     // 设置支持 https 协议的代理  
                    "pathRewrite" : {  
                        "^/api" : ""                    // 路径重写,将接口路径中以/api开头的部分替换掉  
                    }  
                }  
            }  
        },  
        "template" : "template.h5.html",  
        "router" : {  
            "mode" : "history",  
            "base" : "./"  
        },  
        "sdkConfigs" : {  
            "maps" : {}  
        },  
        "async" : {  
            "timeout" : 20000  
        },  
        "title" : "",  
        "optimization" : {  
            "treeShaking" : {  
                "enable" : true  
            }  
        }  
    }
m***@163.com

m***@163.com (作者)

经反复测试求证,使用 yarn 安装依赖包不会报错

y***@live.com

y***@live.com

    "h5" : {  
        "devServer" : {  
            "https" : false,  
            "port" : ""  
        },

我的manifest.json中 port默认是空的,加上就可以了

要回复问题请先登录注册