win10 安裝 framework7 報錯解決思路和方法
一定要用管理員權限打開cmd或者PowerShell
lovell/sharp安裝失敗
https://github.com/lovell/sharp
D:\VueWorkspaces\cordova-app-01>npm i framework7-cli -g
npm WARN deprecated [email protected]: The package has been renamed to `open`
D:\Programs\nodejs\node_global\framework7 -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\index.js
D:\Programs\nodejs\node_global\f7 -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\index.js
> [email protected] install D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.8.1/libvips-8.8.1-win32-x64.tar.gz
ERR! sharp Please delete D:\Programs\nodejs\node_cache\_libvips\libvips-8.8.1-win32-x64.tar.gz as it is not a valid tarball
ERR! sharp zlib: unexpected end of file
info sharp Attempting to build from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies
D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp>if not defined npm_config_node_gyp (node "D:\Programs\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "D:\Programs\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! configure error
gyp ERR! stack Error: Command failed: D:\Programs\Python\Python37-32\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack File "<string>", line 1
gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack at ChildProcess.exithandler (child_process.js:294:12)
gyp ERR! stack at ChildProcess.emit (events.js:189:13)
gyp ERR! stack at maybeClose (internal/child_process.js:978:16)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
gyp ERR! System Windows_NT 10.0.18362
gyp ERR! command "D:\\Programs\\nodejs\\node.exe" "D:\\Programs\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp
gyp ERR! node -v v11.4.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
解決方案
運行npm install --global --production windows-build-tools
會自動下載 python2.7
和Microsoft Visual Studio
至C:\Users\User\.windows-build-tools
中,且自動安裝。
python2.7
自動解壓至當前目錄下C:\Users\User\.windows-build-tools\python27
Microsoft Visual Studio
自動安裝至C:\Program Files (x86)\Microsoft Visual Studio
中
設置 node-gpy 依賴的python版本
https://github.com/nodejs/node-gyp
npm config set python C:\Users\User\.windows-build-tools\python27
運行成功
D:\VueWorkspaces\cordova-app-01>npm install -g framework7-cli
npm WARN deprecated [email protected]: The package has been renamed to `open`
D:\Programs\nodejs\node_global\f7 -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\index.js
D:\Programs\nodejs\node_global\framework7 -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\index.js
> [email protected] install D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Using cached D:\Programs\nodejs\node_cache\_libvips\libvips-8.8.1-win32-x64.tar.gz
info sharp Creating D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release
info sharp Copying DLLs from D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\lib to D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release
prebuild-install WARN install No prebuilt binaries found (target=11.4.0 runtime=node arch=x64 libc= platform=win32)
D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp>if not defined npm_config_node_gyp (node "D:\Programs\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "D:\Programs\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
在此解決方案中一次生成一個項目。若要啓用並行生成,請添加“/m”開關。
VError.cpp
VInterpolate.cpp
VImage.cpp
win_delay_load_hook.cc
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\libvips\cplusplus\VError.cpp) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\libvips-cpp.vcxp
roj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\libvips\cplusplus\VInterpolate.cpp) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\libvips-cp
p.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\libvips\cplusplus\VImage.cpp) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\libvips-cpp.vcxp
roj]
正在創建庫 D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release\libvips-cpp.lib 和對象 D:\Programs\nodejs\node_global\node_modules\f
ramework7-cli\node_modules\sharp\build\Release\libvips-cpp.exp
正在生成代碼
All 1012 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
已完成代碼的生成
libvips-cpp.vcxproj -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release\\libvips-cpp.dll
common.cc
metadata.cc
stats.cc
operations.cc
pipeline.cc
sharp.cc
utilities.cc
win_delay_load_hook.cc
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\operations.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\pipeline.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\stats.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\sharp.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\metadata.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\utilities.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
d:\programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\include\glib-2.0\glib\gtestutils.h : warning C4819: 該文件包含不能在當前代碼頁(936)中表示的字符。請將該文件
保存爲 Unicode 格式以防止數據丟失 (編譯源文件 ..\src\common.cc) [D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\sharp.vcxproj]
正在創建庫 D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release\sharp.lib 和對象 D:\Programs\nodejs\node_global\node_modules\framewo
rk7-cli\node_modules\sharp\build\Release\sharp.exp
正在生成代碼
All 1291 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
已完成代碼的生成
sharp.vcxproj -> D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release\\sharp.node
info sharp Creating D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release
info sharp Copying DLLs from D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\vendor\lib to D:\Programs\nodejs\node_global\node_modules\framework7-cli\node_modules\sharp\build\Release
+ [email protected]
added 350 packages from 331 contributors in 70.933s
D:\VueWorkspaces\cordova-app-01>framework7 --version
3.0.5
D:\VueWorkspaces\cordova-app-01>framework7 create --ui
√ All good, you have latest framework7-cli version.
√ Launching Framework7 UI server
Framework7 CLI UI is running on http://localhost:3001 (CTRL + C to exit)