数据表单编译失败 - 分配给右值

sri*_*esh 5 dataform google-cloud-platform

我在本地计算机上使用 Dataform CLI。版本:1.22.2

我按照本指南运行包含。https://docs.dataform.co/guides/javascript/includes 我的 sqlx 文件和常量与文档相同。

常量.js

const PROJECT_ID = "我的项目名称"; module.exports = { PROJECT_ID };

sqlx

SELECT * FROM ${constants.PROJECT_ID}.schema.table

PS C:\Srikanth\vscode\framework> dataform compile
Compiling...

Dataform encountered an error: Assigning to rvalue
C:\user\vscode\repository_1\index.js:25
      try { global.includes/constants = require("./includes/constants.js"); } catch (e) {
            ^

SyntaxError: Assigning to rvalue
    at makeNiceSyntaxError (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\transformer.js:41:16)
    at transformer (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\transformer.js:84:8)
    at NodeVM.run (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\node_modules\vm2\lib\nodevm.js:414:17)
    at compile (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\worker_bundle.js:19829:23)
    at process.<anonymous> (C:\Users\user\AppData\Roaming\nvm\v16.9.1\node_modules\@dataform\cli\worker_bundle.js:19834:36)
    at process.emit (node:events:406:35)
    at emit (node:internal/child_process:917:12)
    at processTicksAndRejections (node:internal/process/task_queues:84:21)``` 
Run Code Online (Sandbox Code Playgroud)

sri*_*esh 0

这种情况只发生在 Windows 机器上。

谷歌网站上已经跟踪了一个问题。 https://issuetracker.google.com/issues/279506026

作为解决方法,我修改了node_module“...\node_modules@dataform\core\bundle.js”中的相关函数:

const pathSeperator = (() => {
    if (typeof process !== "undefined") {
        return process.platform === "win32" ? "/" : "/";
    }
    return "/";
})();
Run Code Online (Sandbox Code Playgroud)

参考: https: //github.com/dataform-co/dataform/issues/1486

还更新到最新版本的 dataform cli(已使用 - 2.3.2)