【发布时间】:2021-08-29 00:45:12
【问题描述】:
我在带有电子和打字稿的环境中使用 sqlite3,但是当我尝试使用它时,我得到了标题所说的错误(当电子开始运行时)。请让我知道该怎么做...
错误如下。
error - ../node_modules/tar/tar.js:108:10
Syntax error: Legacy octal literals are not allowed in strict mode.
106 | // values for the mode field
107 | var modes =
> 108 | { suid: 04000 // set uid on extraction
| ^
109 | , sgid: 02000 // set gid on extraction
110 | , svtx: 01000 // set restricted deletion flag on dirs on extraction
111 | , uread: 0400
我的环境如下。
os: Windows10
---------cmd------------
node -v
> v14.2.0
npx electron -v
> v12.0.11
-------package.json-------
"scripts": {
...
"postinstall": "npm run rebuild && electron-builder install-app-deps",
"rebuild": "electron-rebuild -f -w sqlite3",
},
"dependencies": {
...
"sqlite3":"^5.0.2",
},
"devDependencies": {
...
"electron": "12.0.2", (different version to ↑...?)
"typescript": "^4.2.3"
}
如果我只能在 tar.js 中执行诸如忽略严格模式之类的操作,那会是一种解决方法吗...?还是我需要做一些不同的事情?
--
[编辑] 作为测试,我尝试使用“npm i tar”直接安装tar,虽然最初并没有直接安装。然后我得到了一个不同的错误。看来 node-gyp 和 node-pre-gyp 出了问题。 也许,问题不在于“tar”版本,而在于电子、windows 和 sqlite3 之间的依赖关系。但我不知道如何使这种依赖关系正确......这将是另一个问题......无论如何,谢谢,
【问题讨论】:
-
安装了哪个版本的
tar库?你可以在package-lock.json文件中查看 -
package-lock.json 中的“tar”版本是“2.2.2”。我看了看,发现它是“node-pre-gyp”和“node-gyp”所需要的,而不是“sqlite3”。
标签: javascript typescript electron