-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build failed #32
Comments
|
看输出的错误: process_begin: CreateProcess(NULL, rsync -am --no-links --exclude node_modules node_modules/react node_modules/react-dom build/lib, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [build/lib] Error 2 说的是找不到 rsync ,所以在这个目标挂掉了: Lines 34 to 38 in c4c249f
|
@magic-akari |
@unbadfish 我认为你这是在使用 Mintty 的终端,连上 MSYS2 的环境,使用 MinGW64 (mingw-w64) 的那套工具,而不是 cmd 。你可以从提示符 cmd 的提示符长这样: C:\Users\foo>ver
Microsoft Windows [Version 10.0.19042.685] |
@unbadfish 实际上你在第一句就已经说了:
所以这是 Git Bash 的那个环境,也是 MSYS2 。不过,相较于完整的 MSYS2 环境, Git Bash 少了一些预装的程序,例如包管理器 pacman ,毕竟 Git Bash 只是用来 Git 的。 我找到一个不是很新的、关于在 Git Bash 安装 rsync 的教程,你可以看一下: windows - How to add more commands to Git Bash? - Super User § answer-1464552 你可以使用 foo@bar MINGW64 ~
$ uname -a
MINGW64_NT-10.0-19042 BAZ 3.1.7-340.x86_64 2020-10-23 13:08 UTC x86_64 Msys |
我安装了
C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2021-01-10T02_04_46_966Z-debug.log:
注意PATH
|
这个项目的 Makefile 的各个目标均只包含 Linux shell 命令,但从你的提示符 看上去你错误地理解了我的上一条评论( #32 (comment) )中链接的关于在 Git Bash 中安装 rsync 的教程,所以你不仅额外安装了 MSYS2 ,而且还并没有在正确的环境( 你已有的 Git Bash 或新安装的 MSYS2 )中执行构建。你可以尝试在你的第一条评论( #32 (comment) )提及的环境( Git Bash )中按教程配置好 rsync ,再执行 顺带说一句,建议你使用 Hyper-V 或 VirtualBox 等软件的 Linux 虚拟机来进行开发,这样会更友好一些。 |
已安装,又失败了
|
没有 你没看文档? |
我估计是这个的问题
最近学业繁忙,年前估计是用不了电脑了:cry: |
liveServer 是一个插件,在文档中有提及:
过年期间记得装一个 Linux 虚拟机来优化你的开发体验 :) |
如果你顺利地开始了 npm run build> [email protected] build M:\lrc-maker
> make build
mkdir -p build
cp -r assets/* build
mkdir -p build/lib
rsync -am --no-links --exclude 'node_modules' node_modules/react node_modules/react-dom build/lib
touch build/lib
node_modules/.bin/ts-node -P scripts/tsconfig.json scripts/generate.metadata.ts | tee src/metadata.d.ts > worker/metadata.d.ts
node_modules/.bin/tsc -b
node_modules/.bin/tsc -b tsconfig.es6.json
node_modules/.bin/webpack --mode=production --config=.webpack.config.cjs
[webpack-cli] Compilation finished
asset index.es6.js 85.7 KiB [emitted] [minimized] (name: main) 1 related asset
orphan modules 34.5 KiB [orphan] 11 modules
runtime modules 1.13 KiB 5 modules
modules by path ./node_modules/ 43.3 KiB
modules by path ./node_modules/core-js/internals/*.js 30.3 KiB 60 modules
modules by path ./node_modules/core-js/es/ 719 bytes 5 modules
modules by path ./node_modules/core-js/modules/*.js 2.27 KiB 5 modules
./node_modules/tslib/tslib.es6.js 10 KiB [built] [code generated]
modules by path ./build.es6/ 130 KiB
modules by path ./build.es6/components/ 60.2 KiB 8 modules
modules by path ./build.es6/languages/ 19.2 KiB 7 modules
modules by path ./build.es6/utils/*.js 6.22 KiB 5 modules
modules by path ./build.es6/polyfill/*.js 4.24 KiB 3 modules
modules by path ./build.es6/hooks/*.js 5.82 KiB 2 modules
./build.es6/index.js + 7 modules 30.6 KiB [built] [code generated]
./build.es6/lrc-parser.js 3.48 KiB [built] [code generated]
webpack 5.3.2 compiled successfully in 2710 ms
... ...
node_modules/.bin/postcss src/index.css -m -d build
Error: Failed to find './normalize.css'
in [
M:\lrc-maker\src
]
at M:\lrc-maker\node_modules\postcss-import\lib\resolve-id.js:35:13
at async LazyResult.runAsync (M:\lrc-maker\node_modules\postcss\lib\lazy-result.js:331:11)
at async Promise.all (index 0)
make: *** [Makefile:45: build/index.css] Error 1 我不知道该如何解决它,只是猜测这可能是由 Windows 与 Unix 不同的路径风格所导致的。 为了把工作重心放到开发本身上,再次建议你去配置一个 Linux 虚拟机做开发。 |
如果提供一个 docker 的配置,是否有助于解决问题呢? |
@magic-akari Hi. 用 docker 应该是能够解决问题的。但是 Docker Desktop on Windows 需要 Hyper-V [1]或 WSL 2 [2],个人感觉这与直接配置 Linux 虚拟机或 WSL 2 差不太多, docker 的参与并没有减少工作量。 说起 WSL ,其实 WSL 1 是值得一试的。不过,我之前在别的项目里遇到过某个包(似乎是 node-gyp )在 WSL 1 上构建失败的问题,于是就没有继续使用这个环境做开发了。
|
好了 |
这么说的话, MSYS2 应该也能成。 我的 Cygwin 的结果与 MSYS2 的一样( #32 (comment) ): $ uname -a
CYGWIN_NT-10.0 BAZ 3.1.7(0.340/5/3) 2020-08-22 17:48 x86_64 Cygwin
$ npm run build
> [email protected] build M:\lrc-maker
> make build
...
node_modules/.bin/postcss src/index.css -m -d build
Error: Failed to find './normalize.css'
in [
M:\lrc-maker\src
]
at M:\lrc-maker\node_modules\postcss-import\lib\resolve-id.js:35:13
at async LazyResult.runAsync (M:\lrc-maker\node_modules\postcss\lib\lazy-result.js:331:11)
at async Promise.all (index 0)
make: *** [Makefile:45: build/index.css] Error 1 @unbadfish 请问你具体是怎么配置环境的呢? |
用的是Windows下的npm和node.js,别的明天再说…… |
@unbadfish 额,我暂时想不出该问你啥,不好意思。等之后有时间了我找个干净的环境重新试一试。 感谢你所做的尝试。 |
@unbadfish ,你好! 在一个全新安装的 Windows 虚拟机中,我在一些环境中测试了 lrc-maker 的构建和运行情况: 环境我使用了 node.js 14.17.0 ( npm 6.14.13 ),来自于 Node.js 的“ Windows Binary (.zip) ”。 Cygwin结果:成功构建并启动程序。 配置: $ cygcheck -c cygwin make rsync
Cygwin Package Information
Package Version Status
cygwin 3.2.0-1 OK
make 4.3-1 OK
rsync 3.2.3+20200903+git9f9240b-4 OK
$ uname -a
CYGWIN_NT-10.0 FOO 3.2.0(0.340/5/3) 2021-03-29 08:42 x86_64 Cygwin
MSYS2 (非 Git Bash )结果:成功构建并启动程序。 配置: $ pacman -Q msys2-runtime make rsync
msys2-runtime 3.2.0-3
make 4.3-1
rsync 3.2.3-1
$ uname -a
MSYS_NT-10.0-19041 FOO 3.2.0-340.x86_64 2021-04-02 09:40 UTC x86_64 Msys
值得注意的是,由于 MSYS2 和 MinTTY 存在问题,在执行 Git Bash结果:失败,需要进一步的分析与调试,可能需要修改 Makefile 并调试 make.exe ,不过我暂时没时间研究它。 CMD结果:失败, 解释:由于 Makefile 含有调用 Linux 程序的命令(例如 配置: > make --version
GNU Make 3.81
> rsync --version
rsync version 3.2.3 protocol version 31
> ver
Microsoft Windows [Version 10.0.19041.329]
结论和建议看起来 Cygwin 和 MSYS2 都能够胜任 Windows 环境中的 node.js 开发。之前我在这两种环境中进行测试时出错,很有可能是因为项目文件位于 ImDisk Virtual Disk 创建的分区,使得 postcss 无法对其进行正确的处理。这需要进一步的分析。 当然,我认为最好还是在 Linux 环境中进行 node.js 开发。 |
@pzhlkj6612 感谢非常有价值的测试报告。 我理解中,一般的 node.js 项目在 Windows 上开发应该是没有问题的。 |
@magic-akari ,谢谢回复。
我同意,毕竟 node.js for Windows 也是被官方支持的。
没错。另外,由于本项目的 makefile 并没有考虑跨平台的情况(例如使用 |
克隆仓库之后在 git bash 的窗口中执行以下操作
C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2021-01-05T14_22_42_829Z-debug.log:
C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2021-01-05T14_24_20_852Z-debug.log:
make:
The text was updated successfully, but these errors were encountered: