NPM在角度项目中安装时发生错误

时间:2019-07-30 04:14:55

标签: angular node-gyp node-sass

我们是一个致力于角度项目的团队。从仓库下载代码后,当我尝试运行$ npm install时,我遇到以下错误。

我尝试在项目目录下安装node-gyp,node-sass,删除的node_modules,但是在执行$ npm install时没有任何方法可以解决问题

  

../ src / create_string.cpp:在功能‘char *       create_string(Nan :: MaybeLocal)’:   ../src/create_string.cpp:17:37:错误:没有匹配的函数可以调用        v8 :: String :: Utf8Value :: Utf8Value(v8 :: Local&)’          v8 :: String :: Utf8Value字符串(值);                                            ^

     

在/home/pc-username/.node-gyp/12.7.0/include/node/node.h:63:0中包含的文件中,

             from ../../../../../nan/nan.h:54,
             from ../src/create_string.cpp:1:
/home/pc-username/.node-gyp/12.7.0/include/node/v8.h:3002:5: note: candidate: v8::String::Utf8Value::Utf8Value(v8::Isolate*, v8::Local<v8::Value>)
     Utf8Value(Isolate* isolate, Local<v8::Value> obj);
     ^~~~~~~~~
     

/home/pc-username/.node-gyp/12.7.0/include/node/v8.h:3002:5:注意:候选人需要2个参数,提供1个   binding.target.mk:127:目标'Release / obj.target / binding / src / create_string.o'的配方失败

make: *** [Release/obj.target/binding/src/create_string.o] Error 1
make: Leaving directory '/home/pc-username/project-folder/project-name/node_modules/@angular-devkit/build-angular/node_modules/node-sass/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/home/pc-username/project-folder/project-name/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:203:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.18.0-25-generic
gyp ERR! command "/usr/lib/node_modules/node/bin/node" "/home/pc-username/project-folder/project-name/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/pc-username/project-folder/project-name/node_modules/@angular-devkit/build-angular/node_modules/node-sass
gyp ERR! node -v v12.7.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
     

构建失败,错误代码:1   npm WARN ajv-keywords@3.4.0需要ajv@^6.9.1的同位体,但未安装。您必须自己安装对等依赖项。   npm WARN angular-font-awesome@3.1.2需要一个font-awesome@^4.7.0的同位体,但未安装。您必须自己安装对等依赖项。   npm WARN bootstrap@4.3.1需要popper.js@^1.14.7的同级项,但未安装。您必须自己安装对等依赖项。   npm警告可选的跳过可选依赖性:fsevents@1.2.9(node_modules / fsevents):   npm WARN notsup跳过可选依赖性:fsevents@1.2.9不受支持的平台:通缉{“ os”:“ darwin”,“ arch”:“ any”}(当前:{“ os”:“ linux”,“ arch”: “ x64”})   npm警告可选的跳过可选依赖项:node-sass@4.10.0(node_modules / @ angular-devkit / build-angular / node_modules / node-sass):   npm警告可选的跳过选择性依赖:node-sass@4.10.0安装后:`node scripts / build.js   npm警告可选的跳过跳过依赖性:退出状态1

     

在162.363秒内审核了46047个程序包   已发现641个漏洞(低1,高640) run npm审核修复to fix them, or npm审核for details

有人可以指出问题所在吗?

关于, Ananth S

2 个答案:

答案 0 :(得分:2)

如果该问题对于使用Ivy(8+)最新版本的angular的当今人有用,那么我最近在package-lock.json和节点模块上苦苦挣扎(多次删除并重新安装) ,甚至将我的node和npm版本更新为上一个答案中建议的最新版本以及与此类似的许多其他相关问题,所有这些都没有成功。

已解决的问题正在运行

npm audit fix

我认为,从Angular版本8开始,node-sassdart-sass所取代 https://blog.ninja-squad.com/2019/05/29/angular-cli-8.0/#dart-sass-replaces-node-sass

我在package-lock.json中注意到,无论我删除它多少次并重试npm安装,node-sass始终是@angular-devkit/build-angular必需的依赖项(而在我创建的较新的Angular 10项目中使用角度CLI时,依存关系是普通的sass

运行npm audit fix后,我的package-lock.json已更新为使用sass作为@angular-devkit/build-angular的必需依赖项,这与较新的Angular项目中的默认情况相同。

如果有人能更清楚地了解这是为什么,或者是解决该问题的另一种更好的方法,我将很高兴知道。否则我希望这会有所帮助。

我在堆栈溢出的另一个类似问题中了解了npm audit fix解决方案,我现在似乎再也找不到了:( 如果我再次看到它,我会链接它,但要归功于那个家伙。

答案 1 :(得分:0)

在可能来自节点sass之前先面对相同的问题。

尝试删除package.json.lock并运行npm install。

请参阅此链接:https://github.com/sass/node-sass/issues/1991