Đây là câu trả lời gần đây hơn bằng cách sử dụng TypeScript 1.8.10:
Cấu trúc dự án của tôi là:
|
|--- src
|--- test
|--- dist <= My gulp file compiles and places the js, sourcemaps and .d.ts files here
| |--- src
| |--- test
|--- typings
.gitignore
.npmignore
gulpfile.js
package.json
README.md
tsconfig.json
tslint.json
typings.json
Tôi đã thêm những thứ sau vào .npmignore
để tránh bao gồm các tệp không liên quan và giữ mức tối thiểu để gói được nhập và hoạt động:
node_modules/
*.log
*.tgz
src/
test/
gulpfile.js
tsconfig.json
tslint.json
typings.json
typings
dist/test
Của tôi .gitignore
có:
typings
# ignore .js.map files
*.js.map
*.js
dist
Của tôi package.json
có:
"main": "dist/src/index.js",
"typings": "dist/src/index.d.ts",
Bây giờ tôi chạy:
npm pack
Tệp kết quả (khi được giải nén) có cấu trúc như sau:
|
|--- dist
| |--- src
| |
| index.js
| index.js.map
| index.d.ts
|
package.json
README.md
Bây giờ tôi đi đến dự án nơi tôi muốn sử dụng nó làm thư viện và nhập:
npm install ./project-1.0.0.tgz
Nó cài đặt thành công.
Bây giờ tôi tạo một tệp index.ts
trong dự án của mình, nơi tôi vừa cài đặt npm
import Project = require("project");
Đánh máy Project.
cung cấp cho tôi các tùy chọn Intellisense, đó là điểm của toàn bộ bài tập này.
Hy vọng điều này sẽ giúp ai đó sử dụng các dự án TypeScript npm của họ làm thư viện nội bộ trong các dự án lớn hơn của họ.
PS: Tôi tin rằng phương pháp này biên soạn dự án module NPM có thể được sử dụng trong các dự án khác là gợi nhớ của .dll
trong.NET
thế giới. Tôi cũng có thể tưởng tượng các dự án được tổ chức trong Giải pháp trong VS Code nơi mỗi dự án tạo ra một gói npm sau đó có thể được sử dụng trong một dự án khác trong giải pháp như một phần phụ thuộc.
Vì phải mất một khoảng thời gian kha khá để tôi tìm ra điều này, tôi đã đăng nó để phòng trường hợp ai đó bị mắc kẹt ở đây.
Tôi cũng đã đăng nó cho một lỗi đóng cửa tại:
https://github.com/npm/npm/issues/11546
Ví dụ này đã được tải lên Github: vchatterji / tsc-seed