win10 安装 framework7 报错解决思路和方法
一定要用管理员权限打开cmd或者PowerShell
lovell/sharp安装失败
https://github.com/lovell/sharp
D:\VueWorkspaces\cordova-app-01>npm i framework7-cli -g
npm WARN deprecated opn@6.0.0: 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
> sharp@0.23.2 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! sharp@0.23.2 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 sharp@0.23.2 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 opn@6.0.0: 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
> sharp@0.23.2 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
+ framework7-cli@3.0.5
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)