【问题标题】:Electron: The "path" argument must be of type string. Received type objectElectron:“路径”参数必须是字符串类型。接收到的类型对象
【发布时间】:2020-06-20 16:04:58
【问题描述】:

我正在尝试使用 NodeJs Text To Speech Client Libary 在电子中运行 Google Text-To-Speech

我可以在我的项目的main.js 中使用require('@google-cloud/text-to-speech');(创建浏览器窗口)`,但不能在页面内的脚本中运行它。

我得到的错误如下:

Uncaught TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
    at validateString (internal/validators.js:112:11)
    at Object.basename (path.js:671:5)
    at GrpcClient.loadProto (path\to\project\node_modules\google-gax\build\src\grpc.js:117:29)
    at new TextToSpeechClient (path\to\project\node_modules\@google-cloud\text-to-speech\build\src\v1\text_to_speech_client.js:106:32)
    at file://path/to/project/scripts/speech/ttscli.js:7:16

来自位于scripts/speech/ttscli.jscode

nodeIntegration 设置为 true,scripts/speech/ttscli.js 的使用方式如下:

<script src="./scripts/speech/ttscli.js"></script>

任何帮助将不胜感激

【问题讨论】:

    标签: node.js electron google-text-to-speech


    【解决方案1】:

    “路径”参数必须是字符串类型。接收到的类型对象 在 validateString (internal/validators.js:112:11) 在 Object.basename (path.js:671:5)

    这很简单:您没有传入有效路径(字符串类型)。

    <script src="./scripts/speech/ttscli.js"></script>
    

    你没有提到你的项目结构——你的renderer 上下文相对于上面的路径在哪里?在您的页面脚本中执行console.log(__dirname)以查看页面路径并将其与上面的路径进行比较。

    【讨论】:

    • 根据客户的文档,我不需要解析任何参数或选项?
    • 我在ttscli.js 中运行了console.log(__dirname);,它返回了C:\Users\sam02\WebstormProjects\face(我的项目根目录)
    • 很难从您迄今为止发布的内容中判断您的项目结构。这显然只是一个路径问题。这是实际错误还是您将其更改为隐藏个人信息:`path\to\project`
    • path\to\projectC:\Users\sam02\WebstormProjects\face(隐藏个人信息)。理想情况下,我想在不修改它的情况下使用该模块。否则我不确定如何解决上述路径问题。
    猜你喜欢
    • 2019-10-10
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2020-09-21
    • 2019-12-14
    相关资源
    最近更新 更多