Win10 搭建本地开发环境node项目记录,解决`gyp` failed with exit code: 1和node-sass安装失败问题

本文介绍如何在不同环境下(如Windows和macOS)搭建Node项目,包括从GitLab获取代码、安装项目依赖、解决常见错误(如gyp错误、node-sass安装问题等)、配置npm源等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 环境:python2.7,node 8

 从gitlab拉取项目文件

>git clone [url]    // 拉取master

>git checkout [branch name]  // 切换分支

或者

>git clone -b [branch name]  [url]   // 拉取分支

根据要求来拉取,期间可能要提供gitlab 的账号密码,输入就好了。

运行node项目

 安装项目依赖

npm i  (同 npm install)

使用npm运行项目

package.json文件中一般已经配置了scripts对象,定义了启动项目的命令,一般为dev 或者start

有的项目如果需要先进行编译(gulp,grunt,webpack等等), 可能会有build相关的命令)

> npm run dev / npm run start  //启动项目

手动运行

> npm run build // 如果项目需要事先编译,则需要先执行

node app.js    // 运行node项目的入口js文件,顺利的话直接就启动成功。

可能错误

1. stack Error: `gyp` failed with exit code: 1

 执行> npm install --global --production windows-build-tools

控制台会自动安装以下3个软件,可能要1个多G,也可以手动去官网下载这些依赖

安装后再执行node app.js启动


根据评论区@清蒸鱼跃龙门的描述,在macOS

./util/has_lib.sh: line 31: pkg-config: command not found gyp: Call to './util/has_lib.sh freetype' returned exit status 0 while in binding.gyp. while trying to load binding.gyp gyp ERR! configure error gyp ERR! stack Error: `gyp` failed with exit code: 1 gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16) gyp ERR! stack at ChildProcess.emit (events.js:210:5) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) gyp ERR! System Darwin 20.1.0 gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /Users/.../node_modules/canvas gyp ERR! node -v v12.14.0 gyp ERR! node-gyp -v v5.0.5 gyp ERR! not ok

 解决(原文见评论区):

  1. 确认安装了homebrew(brew命令)
  2. brew install pkg-config 安装pkg-config
  3. 重试npm i

2. nods-sass安装问题

在npm i / install 或者 npm rebuild的时候安装node-sass失败,可能因为网络问题下载不了win32-x64-64_binding.node导致

推荐解决:

  1. npm remove node-sass
  2. npm install sass -D
  3. /deep/ 替换为::v-deep

常规解决

  • npmrc中配置
  1. 在C:\Users\xxx下建立.npmrc文件,内容为 SASS_BINARY_PATH=C:\npm\win32-x64-64_binding.node
  2. 网上下载win32-x64-64_binding.node后放在C:\npm\win32-x64-64_binding.node目录下重试
  • 或直接在命令后加 npm i node-sass --SASS_BINARY_PATH=C:\npm\win32-x64-64_binding.node

3. cannot fine module xxx  缺少相关依赖

首先确保是./node_modules/下的npm依赖,不是自己项目的依赖,如果是自己的依赖找不到,一般是路径的问题。

>npm install xxx   //安装指定依赖。  或npm i 安装package.json中指定的全部依赖

4.No matching version found for 'xxx@x.x.x'

先去npm官网确认版本号。

原因分析

有时可能npm中,一个依赖几个小时前发了包,而如果使用了npm私服(自己公司的npm镜像),而该镜像未同步

在执行npm i的时候,项目依赖的依赖自动想要更新最新的版本号,而私服未同步,导致找不到版本。

解决方案

  • >npm install xxx@版本号   可能会触发私服去同步最新的包
  • 有其他环境能用的package.lock.json的话,复制一份替换掉根目录下同名文件

执行npm i (用package.json安装依赖)或者npm ci (用package.lock.json安装依赖)       关于npm i和npm ci的区别

  • 等待私服同步

5. 曾用其他版本的node执行过npm。

npm rebuild   将该项目目录下的node_module文件夹删除后重新执行npm install ,

npm错误补充

npm报错证书错误  执行 npm cache verify

npm若安装卡住,可能是网络问题

  • 尝试使用淘宝cnpm npm install cnpm -g
  • 尝试指定npm为淘宝镜像 npm config set registry https://registry.npm.taobao.org 或在.npmrc文件中写入registry=https://registry.npm.taobao.org

对于其他的一些奇怪的npm问题,参考

  • 删除 ./package-lock.json 文件
  • 删除项目根目录 ./node_modules 文件夹
  • npm cache clean -f   清除npm缓存
  • npm install  重新安装依赖

若还是有报错

  • 检查项目是否切换到正确的分支。
  • 检查项目配置。
  • 检查和尝试其他node版本。
  • 重新拉取分支。

曾经遇到node6,node8可以跑,node10不行。node8,node10可以的,node6不行。

注: node 13+ 支持了es module

参考资料

<think>好的,我现在需要解决用户提到的node-sass安装时postinstall脚本出错的问题,具体是node-sass@4.13.1版本在运行postinstall时的build.js导致exit code 1。根据用户提供的引用内容,我需要整理出一个解决方案。 首先,根据引用[1],node-sass@4.13.0对应的Node.js版本是1013,所以可能node-sass@4.13.1也类似,需要检查用户的Node.js版本是否兼容。如果用户使用的是Node 14或更高版本,可能会出现不兼容的问题。引用[2]中提到推荐安装14.x的Node.js,但用户试过16.x的版本有问题,所以可能需要降级Node.js到14.x或更旧的版本,比如10-13之间。 接下来,用户提供的引用[2]、[3]、[4]、[5]都提到了几种解决方法,包括清除已有的node-sass安装、使用淘宝镜像安装特定版本的sass-loader,以及使用--unsafe-perm参数。需要将这些方法整合成一个步骤清晰的解决方案。 步骤可能包括: 1. 卸载现有的node-sass相关loader,包括全局本地的。 2. 切换Node.js版本到兼容的版本(如Node 10-13或14.x)。 3. 使用淘宝镜像安装node-sass,避免网络问题。 4. 安装指定版本的sass-loader(如7.3.1style-loader。 5. 尝试使用--unsafe-perm参数绕过权限问题。 6. 最后重新运行npm install。 同时,需要注意用户可能是在全局安装还是项目本地安装,根据引用[2]中的建议,可能需要全局清除旧版本以避免残留问题。此外,引用[5]提到使用--unsafe-perm参数,特别是在Windows或Linux上,可能需要管理员权限。 另外,检查Python版本是否符合要求,引用[1]提到需要Python 2.6,但较新的node-sass可能需要更高版本,或者用户可能安装了Python 3,导致构建失败。可能需要确保Python环境正确,并且node-gyp配置正确。 可能还需要检查npm的日志文件,查看具体错误原因,如引用[3][4]中提到的日志路径,但用户可能不太熟悉如何分析日志,所以解决方案中可能需要指导用户如何清理缓存或提供常见问题处理。 综上所述,解决方案应该分步骤进行,涵盖版本兼容性检查、清理旧包、使用镜像安装、指定依赖版本,以及处理权限问题。同时,需要提醒用户注意Node.jsPython的版本要求,以及在全局项目本地操作的区别。</think>### 解决node-sass@4.13.1 postinstall脚本错误的步骤 #### 1. **检查Node.js版本兼容性** - **node-sass@4.13.1** 兼容的Node.js版本范围为 **Node 10Node 13**。若使用Node 14或更高版本(如Node 16),需降级到兼容版本[^1][^2]。 - 推荐使用 **Node.js 14.x**(部分场景可支持)或 **Node 12.x**。可通过工具(如`nvm`)切换版本: ```bash nvm install 14.17.0 nvm use 14.17.0 ``` #### 2. **彻底卸载旧版依赖** - 清除本地全局的`node-sass`及相关加载器,避免残留冲突: ```bash # 本地卸载 npm uninstall node-sass sass-loader style-loader # 全局卸载(若曾全局安装) npm uninstall -g node-sass sass-loader style-loader ``` #### 3. **通过镜像安装node-sass** - 使用淘宝镜像加速二进制文件下载,避免网络问题[^3]: ```bash npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ ``` #### 4. **安装指定版本的sass-loader** - **sass-loader@7.3.1** 是较稳定的兼容版本: ```bash npm install sass-loader@7.3.1 --save-dev npm install style-loader --save-dev ``` #### 5. **添加权限参数** -安装命令中添加 `--unsafe-perm` 解决权限问题[^5]: ```bash npm install -g my-cli --unsafe-perm # 全局安装示例 npm install --unsafe-perm # 本地安装 ``` #### 6. **验证Python环境** - 确保系统已安装 **Python 2.x**(如Python 2.7)并配置为默认版本。可通过以下命令检查: ```bash python --version # 应为2.x ``` #### 7. **清理缓存并重试** - 若仍报错,清理npm缓存后重新安装: ```bash npm cache clean --force rm -rf node_modules npm install ``` --- ### 常见问题排查 - **错误日志分析**:检查日志文件路径(如 `C:\Users\...\npm-cache\_logs\*.log`)[^3][^4],确认具体错误类型。 - **Node-gyp配置**:若涉及C++编译问题,需安装构建工具(如Windows的`windows-build-tools`)。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值