Câu trả lời:
Trong thư mục mô-đun cục bộ:
$ cd ./package-dir
$ npm link
Trong thư mục của dự án để sử dụng mô-đun:
$ cd ./project-dir
$ npm link package-name
Hoặc trong một lần sử dụng các đường dẫn tương đối:
$ cd ./project-dir
$ npm link ../package-dir
Điều này tương đương với việc sử dụng hai lệnh trên dưới mui xe.
npm linksẽ tạo ra một ví dụ thứ hai của các phụ thuộc bên ngoài. Vì vậy, nếu bạn có gói A cần B và C, B cần C. liên kết B sẽ khiến ứng dụng A có hai phiên bản C.
bạn chỉ cần cung cấp một <folder>đối số cho npm install, đối số sẽ trỏ đến thư mục cục bộ thay vì tên gói:
npm install /path
rm -rf node_moduleskhi trước và npm installsau khi bạn chạy tập lệnh của câu trả lời.
Vì được hỏi và trả lời bởi cùng một người, tôi sẽ thêm một liên kết npm thay thế.
từ tài liệu:
Điều này rất thuận tiện cho việc cài đặt công cụ của riêng bạn, để bạn có thể làm việc với nó và kiểm tra nó lặp đi lặp lại mà không phải liên tục xây dựng lại.
cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency
[Chỉnh sửa] Kể từ NPM 2.0, bạn có thể khai báo các phụ thuộc cục bộ trong pack.json
"dependencies": {
"bar": "file:../foo/bar"
}
npm linklại thư mục một lần (để tạo liên kết tượng trưng toàn cầu) và sau đó chạy npm link package-nametrong thư mục của dự án (để sử dụng liên kết tượng trưng chung trong dự án của bạn). Câu trả lời dưới đây là câu trả lời đúng.
file:phương pháp tiếp cận) được phép cho ứng dụng của tôi và mô đun cục bộ để chia sẻ một phụ thuộc. Thử nghiệm của tôi về npm linkkết quả là một phụ thuộc trùng lặp, phá vỡ mọi thứ nếu phụ thuộc cần phải được sử dụng như một đơn vị.
npm pack + package.jsonĐây là những gì làm việc cho tôi:
module project, thực hiệnnpm pack :Điều này sẽ xây dựng một <package-name>-<version>.tar.gz tập tin.
consumer projectLý tưởng nhất là bạn có thể đặt tất cả các tệp như vậy vào một tmpthư mục trong thư mục consumer-projectgốc của bạn :
package.json:"dependencies": {
"my-package": "file:/./tmp/my-package-1.3.3.tar.gz"
}
Installcác gói:npm installhoặc npm ihoặcyarn
consumer-project's node_modules thư mục .Chúc may mắn...
Cả hai cách tiếp cận này ( npm linkhoặcpackage.json phụ thuộc tệp) đều hoạt động nếu mô đun cục bộ có các phụ thuộc ngang hàng mà bạn chỉ muốn cài đặt trong phạm vi dự án của bạn.
Ví dụ:
/local/mymodule/package.json:
"name": "mymodule",
"peerDependencies":
{
"foo": "^2.5"
}
/dev/myproject/package.json:
"dependencies":
{
"mymodule": "file:/local/mymodule",
"foo": "^2.5"
}
Trong kịch bản này, bộ NPM lên myprojectlà node_modules/như thế này:
/dev/myproject/node_modules/
foo/
mymodule -> /local/mymodule
Khi nút tải mymodulevà nó thực hiện require('foo'), nút sẽ giải quyết mymoduleliên kết tượng trưng, và sau đó chỉ nhìn vào /local/mymodule/node_modules/(và tổ tiên của nó) foomà nó không tìm thấy. Thay vào đó, chúng tôi muốn nút nhìn vào /local/myproject/node_modules/, vì đó là nơi đang chạy dự án của chúng tôi và nơifoo được cài đặt.
Vì vậy, chúng ta có cần một cách để nói với nút để không giải quyết liên kết tượng trưng này khi tìm kiếm foo, hoặc chúng ta cần một cách để nói NPM để cài đặt một bản sao của mymodulekhi cú pháp tập tin phụ thuộc được sử dụng trong package.json. Thật không may, tôi cũng không tìm được cách nào để làm
NODE_PATHđể trỏ đến node_modules/nơi foođược cài đặt. Vì vậy, đối với trường hợp trên, nó sẽ là thế này: NODE_PATH=/dev/myproject/node_modules/ Điều đó cho phép mymoduletìm thấy foo.
Như những người trước đã trả lời npm --save ../location-of-your-packages-root-directory. Các ../location-of-your-packages-root-directorytuy nhiên phải có hai điều để cho nó để làm việc.
1) package.jsontrong thư mục đó chỉ về phía
2) mainthuộc tính package.jsonphải được đặt và làm việc ig "main": "src/index.js",nếu tệp mục nhập cho ../location-of-your-packages-root-directorylà../location-of-your-packages-root-directory/src/index.js