SyntaxHighlighter 的 npm 构建问题
npm building issues for SyntaxHighlighter
我是 npm 的初学者,正在尝试通过首先使用 git 克隆它来构建 SyntaxHighlighter 版本 4,但失败了。这是我得到的错误:
1 error generated.
make: *** [Release/obj.target/binding/src/create_string.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/name/syntaxhighlighter/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:311:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command "/usr/local/bin/node" "/Users/name/syntaxhighlighter/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/name/syntaxhighlighter/node_modules/node-sass
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN notsup Unsupported engine for karma@0.13.22: wanted: {"node":"0.10 || 0.12 || 4 || 5"} (current: {"node":"12.16.1","npm":"6.13.4"})
npm WARN notsup Not compatible with your version of node/npm: karma@0.13.22
npm WARN syntaxhighlighter@4.0.1 No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@3.13.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@3.13.1 postinstall 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 ERR! /Users/name/.npm/_logs/2020-04-05T02_52_17_048Z-debug.log
尝试仅安装 node_modules。
cd /syntaxhighlighter/node_modules$
然后尝试使用 npm install
安装。
gulp.js 文件中存在一些错误,导致安装过程出现问题。我已经尝试过旧版本,但其中 none 可用。希望这会成功。
您 运行 遇到的问题是 SyntaxHighlighter 版本 4 太旧,并且您 运行 的 Node 版本不支持它的依赖项。
错误来自的包是 Karma。尝试安装的 Karma 版本是 v0.13.22。该版本的 Karma 仅支持最大 Node 版本 5,而您似乎是 运行 版本 12。
您可以通过降级 Node 版本或使用 Node Version Manager (NVM) 等工具临时降级 Node 版本来解决此问题。
robdonn 的 NVM 解决方案有效,但是,当 运行 通过 NVM 管理的多个 Node 版本破坏了我的 ApiConnect/Loopback 客户端(仅在 Mac).我一直不明白为什么,但意识到 运行 单个版本的 Node 解决了这个问题。
我还想使用 syntaxhighlighter,我设法使用 Docker 容器生成了 syntaxhighlighter.js 文件。在克隆的目录中,我添加了 Docker 文件。
FROM node:5
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
此后我能够:
- 构建本地 docker 容器
docker build -t syntaxhighlighter .
- 运行 容器将我的本地
dist
目录映射到容器的 dist
目录
docker run -i --volume ~/github/syntaxhighlighter/dist:/usr/src/app/dist syntaxhighlighter
- 获取本地 运行 容器的容器 ID
docker ps
- 使用容器 ID 进入容器(也可以将
CMD ['/bin/sh']
放入我的 Docker 文件中)
docker exec -it <the-container-id> /bin/sh
- 运行 gulp 从 Node v5 容器构建。由于我将本地
dist
目录映射到容器的 dist
目录,因此我在本地获得输出。
./node_modules/gulp/bin/gulp.js build --brushes=all --compat
我是 npm 的初学者,正在尝试通过首先使用 git 克隆它来构建 SyntaxHighlighter 版本 4,但失败了。这是我得到的错误:
1 error generated.
make: *** [Release/obj.target/binding/src/create_string.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/name/syntaxhighlighter/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:311:20)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Darwin 19.3.0
gyp ERR! command "/usr/local/bin/node" "/Users/name/syntaxhighlighter/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /Users/name/syntaxhighlighter/node_modules/node-sass
gyp ERR! node -v v12.16.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1
npm WARN notsup Unsupported engine for karma@0.13.22: wanted: {"node":"0.10 || 0.12 || 4 || 5"} (current: {"node":"12.16.1","npm":"6.13.4"})
npm WARN notsup Not compatible with your version of node/npm: karma@0.13.22
npm WARN syntaxhighlighter@4.0.1 No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@3.13.1 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@3.13.1 postinstall 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 ERR! /Users/name/.npm/_logs/2020-04-05T02_52_17_048Z-debug.log
尝试仅安装 node_modules。
cd /syntaxhighlighter/node_modules$
然后尝试使用 npm install
安装。
gulp.js 文件中存在一些错误,导致安装过程出现问题。我已经尝试过旧版本,但其中 none 可用。希望这会成功。
您 运行 遇到的问题是 SyntaxHighlighter 版本 4 太旧,并且您 运行 的 Node 版本不支持它的依赖项。
错误来自的包是 Karma。尝试安装的 Karma 版本是 v0.13.22。该版本的 Karma 仅支持最大 Node 版本 5,而您似乎是 运行 版本 12。
您可以通过降级 Node 版本或使用 Node Version Manager (NVM) 等工具临时降级 Node 版本来解决此问题。
robdonn 的 NVM 解决方案有效,但是,当 运行 通过 NVM 管理的多个 Node 版本破坏了我的 ApiConnect/Loopback 客户端(仅在 Mac).我一直不明白为什么,但意识到 运行 单个版本的 Node 解决了这个问题。
我还想使用 syntaxhighlighter,我设法使用 Docker 容器生成了 syntaxhighlighter.js 文件。在克隆的目录中,我添加了 Docker 文件。
FROM node:5
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
此后我能够:
- 构建本地 docker 容器
docker build -t syntaxhighlighter .
- 运行 容器将我的本地
dist
目录映射到容器的dist
目录
docker run -i --volume ~/github/syntaxhighlighter/dist:/usr/src/app/dist syntaxhighlighter
- 获取本地 运行 容器的容器 ID
docker ps
- 使用容器 ID 进入容器(也可以将
CMD ['/bin/sh']
放入我的 Docker 文件中)
docker exec -it <the-container-id> /bin/sh
- 运行 gulp 从 Node v5 容器构建。由于我将本地
dist
目录映射到容器的dist
目录,因此我在本地获得输出。
./node_modules/gulp/bin/gulp.js build --brushes=all --compat