Làm cách nào để cài đặt mô-đun node.js mà không sử dụng npm?


115

Có khá nhiều mô-đun được liệt kê trên trang github của nút nhưng không được xuất bản với sổ đăng ký npm. Không thể cài đặt các mô-đun này bằng npm.

Cách chính xác để cài đặt các mô-đun nodejs này sau khi sao chép chúng từ Git là gì?

Câu trả lời:


73

Bạn cần tải xuống nguồn của chúng từ github. Tìm tệp chính và sau đó đưa nó vào tệp chính của bạn.

Bạn có thể tìm thấy một ví dụ về điều này tại đây> Cách cài đặt thủ công mô-đun node.js?

Thông thường, bạn cần tìm nguồn và chuyển qua tệp package.json. Ở đó bạn có thể tìm thấy đâu là tệp chính. Để bạn có thể đưa nó vào ứng dụng của mình.

Để đưa example.js vào ứng dụng của bạn. Sao chép nó trong thư mục ứng dụng của bạn và thêm nó vào đầu tệp js chính của bạn.

var moduleName = require("path/to/example.js")


1
Có thể nhập tập lệnh từ URL bên ngoài (như var myscript = require("http://www.mywebsite.com/myscript.js")) không? Có vẻ như requirechức năng này không hoạt động đối với các URL bên ngoài.
Anderson Green

2
Yêu cầu thực sự đồng bộ, vì vậy không, nó không hoạt động đối với các URL bên ngoài.
Chris Tavares

Lưu ý: bạn cần xóa các -masterthư viện được nối vào github; như thay đổi xxx-masterthành xxx.
BAR

65

Không thể cài đặt các mô-đun này bằng npm.

Trên thực tế, bạn có thể cài đặt một mô-đun bằng cách chỉ định thay vì tên một đường dẫn cục bộ. Miễn là kho lưu trữ có package.jsontệp hợp lệ, nó sẽ hoạt động.


Nhập npm -lvà một trợ giúp khá sẽ xuất hiện như sau:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

Điều đập vào mắt tôi là: npm install <folder>

Trong trường hợp của tôi, tôi gặp sự cố với mrtmô-đun nên tôi đã làm điều này (trong một thư mục tạm thời)

  • Sao chép repo

     git clone https://github.com/oortcloud/meteorite.git
  • Và tôi cài đặt nó trên toàn cầu với:

     npm install -g ./meteorite

Tiền boa:

Người ta cũng có thể cài đặt theo cách tương tự repo cho một dự án npm cục bộ với:

     npm install ../meteorite

Và người ta cũng có thể tạo một liên kết đến repo, trong trường hợp cần một bản vá đang phát triển:

     npm link ../meteorite

1
xuất sắc nhất. Tôi cũng gặp sự cố với một mô-đun, vì vậy tôi đã tách và sao chép nó xuống một thư mục anh chị em của dự án web của mình, cập nhật tất cả các phụ thuộc của nó lên phiên bản mới nhất và sau đó cài đặt nó vào dự án web của tôi với 'npm install ../ break_module_name Điều đó hoạt động như một sự quyến rũ. Cảm ơn!
Perry Tew

+1 nhưng nó không hoạt động nếu chúng tôi không có quyền truy cập mạng cho npm và mô-đun chúng tôi đang cài đặt npm install <folder>có vô số phụ thuộc npm khác.
Abdul Rauf

Nếu npm tìm thấy gói trong node_modules, từ phạm vi toàn cục (không chắc chắn ở đây) hoặc phạm vi cục bộ, nó sẽ không cố tải xuống lại. Điều này có nghĩa là nếu tất cả các phụ thuộc trực tiếp của một repo có thể được tải xuống trước và sao chép vào thư mục node_module, thì nó sẽ hoạt động.
Tiberiu C.

11

Tải xuống mã từ github vào thư mục node_modules

var moduleName = require("<name of directory>")

nên làm vậy.

nếu mô-đun có các thành phần phụ thuộc và có package.json, hãy mở mô-đun và nhập npm install.

Hi vọng điêu nay co ich


Tôi nghĩ mã này hoạt động nếu tệp chính được đặt tênindex.js
R3Bước

8

Bạn có thể sao chép mô-đun trực tiếp vào dự án cục bộ của mình.

Bắt đầu thiết bị đầu cuối. cd vào dự án của bạn và sau đó:

npm cài đặt https://github.com/repo/npm_module.git --save


1
Câu trả lời tôi đang tìm kiếm.
Faisal Mq

Điều gì xảy ra khi gói đã được thay đổi, làm thế nào để bạn cập nhật phiên bản mới nhất? ATM, chỉ có "giải pháp" tôi thấy được để xóa các fodler từ node_modules, xóa các entry package.json và tái thêm, đó là một nỗi đau ...
Predrag Stojadinović

1

Từng bước một:

  • giả sử bạn đang làm việc trên một dự án use-gulpsử dụng ( requirecác) node_moduleslike gulpgulp-util.
  • Bây giờ bạn muốn thực hiện một số sửa đổi đối với gulp-utillib và kiểm tra nó cục bộ với use-gulpdự án của mình ...
  • Fork gulp-utildự án trên github \ bitbucket, v.v.
  • Chuyển sang dự án của bạn: cd use-gulp/node_modules
  • Sao chép gulp-utilthành gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Chạy npm installđể đảm bảo các phụ thuộc gulp-util-devcó sẵn.
  • Bây giờ bạn có một tấm gương gulp-utilnhư gulp-util-dev. Trong use-gulpdự án của bạn , bây giờ bạn có thể thay thế: require('gulp-util')...;call with: require('gulp-util-dev')để kiểm tra những thay đổi mà bạn đã thực hiệngulp-util-dev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.