【问题标题】:"SyntaxError: Invalid regular expression flags" in React/ElectronReact/Electron 中的“SyntaxError:无效的正则表达式标志”
【发布时间】:2019-05-30 14:42:48
【问题描述】:

我有一个 React/Electron 应用程序,我正在使用 electron-builder 在 Windows 上构建它。它构建得很好,但是当我尝试运行打包的程序时,我得到了

Uncaught Exception:
C:\My Project\dist\win-unpacked\resources\app.asar\build\electron.js:1
(function (exports, require, module, __filename, __dirname, process, global, Buffer) { return function (exports, require, module, __filename, __dirname) { /home/jd/projects/app/src/start.js
                                                                                                                                                           ^

SyntaxError: Invalid regular expression flags
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:660:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:704:10)
    at Module.load (internal/modules/cjs/loader.js:602:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:541:12)
    at Function.Module._load (internal/modules/cjs/loader.js:533:3)
    at Object.<anonymous> (C:\My Project\dist\win-unpacked\resources\electron.asar\browser\init.js:188:8)
    at Object.<anonymous> (C:\My Project\dist\win-unpacked\resources\electron.asar\browser\init.js:190:3)

我试图理解这一点。我已经解压electron.asar 来查看init.js,它有189 行(?),第188 行是

Module._load(path.join(packagePath, mainStartupScript), Module, true)

这似乎是在 Electron 中发生的事情,在我编写的应用程序之外被调用?在它到达我的主要start.js for React 之前,这看起来像是一个错误。

感谢您对如何调试此问题的任何想法,如果我可以提供任何更有用的信息,请告诉我。

编辑:我当然应该提到,我不会在我的应用程序的任何地方使用任何正则表达式。

编辑 2:我已将 package.json 上传到 this gist

编辑 3:这个项目是用 create-react-app 引导的

【问题讨论】:

  • 您的应用程序中有正则表达式吗?
  • @Rockey 不,我不知道。将其添加到帖子中。
  • 看看这个github.com/babel/babel/issues/5564,看看它是否适用于你
  • 仅凭错误输出很难确定。这似乎是构建脚本注入文件路径的问题。 /home/ 被解释为带有 jd/projects/app/src/start.js 无效标志的正则表达式。可能需要提供你的 package.json 供人们复制
  • 嗯,我没用过电子。在您的 package.json 中,您使用react-scripts build 构建您可能想要electron-builder。或许可以尝试使用他们的演示项目创建一个电子应用程序,并将其添加为依赖项。

标签: javascript reactjs electron electron-builder


【解决方案1】:

根据错误信息,有文本被解释为正则表达式。

查看您粘贴的错误消息,您可以看到文件C:\My Project\dist\win-unpacked\resources\app.asar\build\electron.js 正确启动并且它们包含字符串/home/jd/projects/app/src/start.js

我认为/home/jd 被解析为带有标志jd 的正则表达式,尽管唯一有效的标志是gimuy (source)。

我的建议是你清理你的构建目录C:\My Project\dist\win-unpacked\resources\app.asar\build\ 并尝试再次编译,虽然我不知道字符串/home/jd/projects/app/src/start.js 是如何出现在你的构建资产中的。希望对您有所帮助!

【讨论】:

  • 我已经设法通过npm run ejecting 以一种糟糕的方式绕过它,但就像你说的那样,我试图找出为什么该字符串被发送到未转义的地方首先!欣赏提示
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2020-05-01
  • 2017-02-07
相关资源
最近更新 更多