我正在尝试在Windows上设置Gatsby入门项目。具体来说,这个入门项目:https://www.gatsbyjs.com/starters/hasura/gatsby-gitbook-starter/
节点:v14.10.1 npm:6.14.8 Gatsby CLI版本:2.12.99 盖茨比版本:2.18.1.10
我打开了一个新终端,并根据文档运行了Gatsby Starter脚本:
"gatsby new gatsby-gitbook-starter https://github.com/hasura/gatsby-gitbook-starter"
成功克隆了初始启动程序后,系统指示我进入该目录并运行“ gatsby-develop”。
这将引发以下错误:
success open and validate gatsby-configs - 0.081s
ERROR
Something went wrong installing the "sharp" module
Cannot find module '../build/Release/sharp.node'
Require stack:
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\sharp\lib\constructor.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\sharp\lib\index.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby-plugin-sharp\safe-sharp.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby-plugin-sharp\index.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby-plugin-sharp\gatsby-node.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\bootstrap\resolve-module-exports.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\bootstrap\load-plugins\validate.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\bootstrap\load-plugins\load.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\bootstrap\load-plugins\index.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\bootstrap\index.js
- C:\code\Sutro\gatsby-gitbook-starter2\node_modules\gatsby\dist\commands\develop.js
- C:\Users\mxgel\AppData\Roaming\npm\node_modules\gatsby-cli\lib\create-cli.js
- C:\Users\mxgel\AppData\Roaming\npm\node_modules\gatsby-cli\lib\index.js
- C:\Users\mxgel\AppData\Roaming\npm\node_modules\gatsby-cli\cli.js
- Remove the "node_modules/sharp" directory, run "npm install" and look for errors
- Consult the installation documentation at https://sharp.pixelplumbing.com/en/stable/install/
- Search for this error at https://github.com/lovell/sharp/issues
⠋ load plugins
我的直觉是,由于某些我无法弄清楚的全局软件包管理器配置,而不是Sharp依赖项本身,引发了此错误。我的目标是使用这个盖茨比入门工具来简化项目文档编制过程。
我的第一步是尝试由错误本身引发的建议。
我尝试删除node_modules / sharp目录并运行npm install,但是它没有给我任何错误,也没有解决问题。 NPM安装的输出如下。
added 2 packages from 60 contributors and audited 2713 packages in 12.906s
54 packages are looking for funding
run `npm fund` for details
found 1219 vulnerabilities (1168 low, 2 moderate, 49 high)
run `npm audit fix` to fix them, or `npm audit` for details
假设'verbose'标志会有所帮助,我删除了模块和package-lock.json并运行npm install sharp --verbose:
npm info it worked if it ends with ok
npm verb cli [
npm verb cli 'C:\\nodejs\\node.exe',
npm verb cli 'C:\\Users\\mxgel\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
npm verb cli 'install',
npm verb cli 'sharp',
npm verb cli '--verbose'
npm verb cli ]
npm info using npm@6.14.8
npm info using node@v14.10.1
npm verb npm-session 166ad6819380c39e
npm http fetch GET 304 https://registry.npmjs.org/sharp 240ms (from cache)
npm http fetch GET 200 https://registry.npmjs.org/sharp/-/sharp-0.26.1.tgz 103ms (from cache)
npm timing stage:loadCurrentTree Completed in 3562ms
npm timing stage:loadIdealTree:cloneCurrentTree Completed in 44ms
npm timing stage:loadIdealTree:loadShrinkwrap Completed in 938ms
npm http fetch GET 304 https://registry.npmjs.org/semver 85ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/fsevents 114ms (from cache)
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm http fetch GET 304 https://registry.npmjs.org/bindings 145ms (from cache)
npm http fetch GET 304 https://registry.npmjs.org/file-uri-to-path 101ms (from cache)
npm timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 8627ms
npm timing stage:loadIdealTree Completed in 10371ms
npm timing stage:generateActionsToTake Completed in 190ms
npm verb correctMkdir C:\Users\mxgel\AppData\Roaming\npm-cache\_locks correctMkdir not in flight; initializing
npm verb makeCacheDir UID & GID are irrelevant on win32
npm verb lock using C:\Users\mxgel\AppData\Roaming\npm-cache\_locks\staging-cfcdc7ee6147183b.lock for C:\code\Sutro\gatsby-gitbook-starter2\node_modules\.staging
npm timing action:extract Completed in 291ms
npm timing audit submit Completed in 321ms
npm http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 324ms
npm timing audit body Completed in 4ms
npm timing action:finalize Completed in 19ms
npm timing action:refresh-package-json Completed in 93ms
npm info lifecycle file-uri-to-path@1.0.0~preinstall: file-uri-to-path@1.0.0
npm info lifecycle bindings@1.5.0~preinstall: bindings@1.5.0
npm info lifecycle semver@7.3.2~preinstall: semver@7.3.2
npm info lifecycle sharp@0.26.1~preinstall: sharp@0.26.1
npm timing action:preinstall Completed in 7ms
npm info linkStuff file-uri-to-path@1.0.0
npm info linkStuff bindings@1.5.0
npm info linkStuff semver@7.3.2
npm verb linkBins [
npm verb linkBins { semver: 'bin/semver.js' },
npm verb linkBins 'C:\\code\\Sutro\\gatsby-gitbook-starter2\\node_modules\\sharp\\node_modules\\.bin',
npm verb linkBins false
npm verb linkBins ]
npm info linkStuff sharp@0.26.1
npm timing action:build Completed in 68ms
npm info lifecycle file-uri-to-path@1.0.0~install: file-uri-to-path@1.0.0
npm info lifecycle bindings@1.5.0~install: bindings@1.5.0
npm info lifecycle semver@7.3.2~install: semver@7.3.2
npm info lifecycle sharp@0.26.1~install: sharp@0.26.1
npm info lifecycle sharp@0.26.1~install: ignored because ignore-scripts is set to true sharp@0.26.1
npm timing action:install Completed in 32ms
npm info lifecycle file-uri-to-path@1.0.0~postinstall: file-uri-to-path@1.0.0
npm info lifecycle bindings@1.5.0~postinstall: bindings@1.5.0
npm info lifecycle semver@7.3.2~postinstall: semver@7.3.2
npm info lifecycle sharp@0.26.1~postinstall: sharp@0.26.1
npm timing action:postinstall Completed in 46ms
npm verb unlock done using C:\Users\mxgel\AppData\Roaming\npm-cache\_locks\staging-cfcdc7ee6147183b.lock for C:\code\Sutro\gatsby-gitbook-starter2\node_modules\.staging
npm timing stage:executeActions Completed in 648ms
npm timing stage:rollbackFailedOptional Completed in 1ms
npm timing stage:runTopLevelLifecycles Completed in 15394ms
npm verb saving [ { name: 'sharp', spec: '^0.26.1', save: 'dependencies' } ]
npm verb shrinkwrap skipping write for package.json because there were no changes.
npm info lifecycle undefined~preshrinkwrap: undefined
npm info lifecycle gatsby-gitbook-boilerplate@0.0.1~shrinkwrap: gatsby-gitbook-boilerplate@0.0.1
npm notice created a lockfile as package-lock.json. You should commit this file.
npm info lifecycle gatsby-gitbook-boilerplate@0.0.1~postshrinkwrap: gatsby-gitbook-boilerplate@0.0.1
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.7 (node_modules\babel-plugin-add-module-exports\node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: win32
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.1.1 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid OS: darwin
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Valid Arch: any
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual OS: win32
npm verb notsup SKIPPING OPTIONAL DEPENDENCY: Actual Arch: x64
npm WARN acorn-class-fields@0.2.1 requires a peer of acorn@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN acorn-dynamic-import@4.0.0 requires a peer of acorn@^6.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN tsutils@3.17.1 requires a peer of typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta but none is installed. You must
install peer dependencies yourself.
+ sharp@0.26.1
added 4 packages from 66 contributors and audited 2666 packages in 16.799s
60 packages are looking for funding
run `npm fund` for details
found 1206 vulnerabilities (1157 low, 2 moderate, 47 high)
run `npm audit fix` to fix them, or `npm audit` for details
npm verb exit [ 0, true ]
npm timing npm Completed in 18411ms
npm info ok
经过一番研究,我发现了ignoring scripts might be the issue。我尝试使用以下命令将ignore-scripts设置为true:
npm install sharp --ignore-scripts
这仍然不能解决问题,并引发了相同的错误。
我尝试删除整个节点模块文件夹和package-lock.json,然后删除以下命令:
npm install --unsafe-perm
使用“ gatsby开发”后,仍然会引发Sharp错误
更多研究。同样,尝试查看是否与NPM有关,我无济于事:
npm rebuild
删除所有模块并使用yarn重新尝试整个过程并不能解决问题。我仅将其列出来说明我的绝望。我可以发布一些纱线结果,但是长话短说,Sharp模块只是直截了当地拒绝让我在使用Yarn安装方法时从Sharp模块下载某个软件包。我什至可以将其追溯到拒绝下载的确切tvg模块,但是我无法解决此问题。
再次感谢您的时间和耐心,信息对您有所帮助!
答案 0 :(得分:0)
检查Gatsby on Windows documentation。您应该运行:
npm install --global windows-build-tools --vs2015
此外,关于尖锐的问题有一个共同点,通常可以通过删除C:\Users\[user]\AppData\Roaming\npm-cache\_libvips
来解决。
答案 1 :(得分:0)
@Ferran为我指明了最佳方向:盖茨比文档。
不确定是什么原因导致此错误,但我完全重置了Windows 10,然后从头开始重新安装了Node,NPM,Gatsby。
所有命令现在都可以正常运行,没有严重的模块错误!肯定是我的硬盘上发生了一些环境冲突。