2013-01-06 20 views
46

Khi cố gắng cài đặt một số gói node.js (cụ thể là sqlite3 và socket.io) bằng cách sử dụng npm install socket.io trên máy tính Windows 7 của mình bằng Visual Studio 2012 (chứ không phải 2010) tôi đã có một số thất bại trông như thế này:npm cài đặt cho một số gói (sqlite3, socket.io) không thành công với lỗi MSB8020 trên Windows 7

C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp.Platform.targets (35,5): lỗi MSB8020: Không thể tìm thấy công cụ xây dựng cho Visual Studio 2010 (Nền tảng Toolset = 'v100'). Để xây dựng bằng cách sử dụng công cụ xây dựng v100 , hãy nhấp vào menu Dự án hoặc nhấp chuột phải vào giải pháp và rồi chọn "Cập nhật dự án VC++ ...". Cài đặt Visual Studio 2010 để xây dựng bằng cách sử dụng công cụ xây dựng Visual Studio 2010.

Trả lời

82

Để làm được việc này trên máy tính của tôi, tôi đã làm lệnh này để cài đặt gói:

npm install socket.io --msvs_version=2012

Tôi tìm thấy câu trả lời here khi gặp vấn đề với việc cài đặt sqlite3 và nó làm việc với socket.io cũng.

Đây có thể là nhiều hơn nữa các giải pháp lâu dài để giải quyết vấn đề:

  1. Cài đặt Visual Studio 2010
  2. Cập nhật các bản sao nội NPM lên một phiên bản mới hơn của nút-làm người nào nhức nhối như mô tả herehere (có lẽ là tốt hơn tùy chọn mặc dù tôi không làm cho nó hoạt động nhưng không cố gắng quá lâu)
+0

Yep đã làm việc cho tôi, mặc dù tôi cũng phải cập nhật nút nội bộ-gyp, điều này cũng sẽ hoạt động đối với mongoj và một số vấn đề khác khi sử dụng vs2012. – Idistic

+1

Cảm ơn. Tôi lãng phí giờ cố gắng tìm ra những gì đã sai. – Joe

+0

hoạt động hoàn hảo, đẹp nhất – Shuliyey

75

Một tùy chọn khác là thay đổi cấu hình thay vì chỉ định msvs_version mỗi lần:

npm config set msvs_version 2012 
+1

Cảm ơn bạn! Tôi quay lại đây để xem có ai đó đã nói điều này không. Tôi cảm thấy mệt mỏi khi thêm công tắc mỗi lần. – Krummelz

+0

Điều này làm việc cho tôi khi cố gắng cài đặt bối cảnh trong VS2013. –

+7

Tôi đã cài đặt VS 2013 và vì vậy tôi đã sử dụng: 'npm config set msvs_version 2013' –

2

Tôi đã cài đặt cả Visual Studio Express 2013 và Visual Studio Community 2015.

tôi đã nhận được C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". [G:\work\cinema\node_modules\engine.io\node_modules\bufferutil\build\bufferutil.vcxproj]

Lý do là các Node.js mới nhất cho Windows tải về từ https://nodejs.org chứa một tuổi npm v2 (và cũ node-gyp bên trong đó npm v2).

tôi phải cập nhật nội Node.js'es npm (mà cũng được cập nhật node-gyp):

(open console as an administrator) 
cd "C:\Program Files\nodejs" 
npm install [email protected] 

npm config set msvs_version 2013 

Bây giờ nó hoạt động (có vẻ như nó sử dụng VS 2013 cho thời điểm hiện tại)

+0

npm config set msvs_version 2015 đã hoạt động! các phiên bản năm trước thì không. –

+1

Tôi đã cài đặt phiên bản VS 2015 và Node.js 5.1.1. Đặt 'npm config set msvs_version 2015' không giải quyết được vấn đề cho tôi. Sửa lỗi của tôi là tạo liên kết tượng trưng cho đường dẫn cài đặt npm không thể tìm thấy (lỗi npm MSB4019: Dự án đã nhập "C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp. Default.props "không được tìm thấy). Mở dấu nhắc lệnh và nhập 'cd C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0' và sau đó là' mklink/d V110 V140'. – reverentgeek

0

TL; DR

Nếu bạn kHÔNG muốn node-gyp phụ thuộc vào phiên bản cài đặt của bạn của Visual Studio (hoặc không có VS cài đặt), cài đặt windows-build-tools (xem được thấp). Điều này sẽ loại bỏ cả lỗi và nên tránh các vấn đề trong tương lai khi nâng cấp phiên bản Visual Studio đã cài đặt của bạn.

Nếu bạn DO muốn node-gyp phụ thuộc vào phiên bản cài đặt của bạn của Visual Studio, sau đó npm config set msvs_version 2015, thay thế thẻ phiên bản của bạn ở vị trí của 2015. phiên bản có giá trị thẻ là: 2015, 2014, 2013, 110, 100


Fixing sử dụng windows-build-tools

mỗi sự node-gyp installation instructions, bạn cũng có thể làm

npm install --global --production windows-build-tools từ một cao vỏ lệnh

Điều này sẽ cài đặt nghiêm chỉnh Công cụ Xây dựng Microsoft Visual C++ (điều này sẽ được sử dụng thay cho Visual Studio để biên dịch) theo yêu cầu của node-gyp và đặt thích hợp msvs_version thành phiên bản vừa được cài đặt.

Sau khi cài đặt, bạn nên kiểm tra xem msvs_version được đặt bởi windows-build-tools chưa bị ghi đè hay không. Khi thực hiện npm config list, msvs_version sẽ xuất hiện dưới ; globalconfig C:\Users\Username\AppData\Roaming\npm\etc\npmrc; nếu không, giá trị được đặt bởi windows-build-tools đã bị ghi đè và giá trị bị ghi đè sẽ bị xóa. npm config delete msvs_version nên xóa giá trị ghi đè và giá trị được đặt bởi công cụ xây dựng sẽ xuất hiện trong phần cấu hình chung.