2017-09-26 19 views
7

Tôi đang cố tạo sơ đồ tùy chỉnh cho cli góc. Cho đến nay tôi đã tìm ra rằng "bộ sưu tập" đã được biên soạn, cli không thể đọc bản ghi. Có nghĩa là bạn không thể chỉ sao chép https://github.com/angular/devkit/tree/master/packages/schematics/angular thay đổi bất cứ điều gì bạn cần và xuất bản nó trên NPM, có nghĩa bạn cần phải sao chép toàn bộ https://github.com/angular/devkit và sử dụng npm run build nó để tạo ra sơ đồ biên soạn bạn cần phải run it thru tsc, sau đó bạn có thể xuất bản các tập tin được biên soạn để NPM và trên toàn cầu cài đặt với NPM, ví dụangular-cli sơ đồ tùy chỉnh/bộ sưu tập

npm i -g @thescrollbar/schematics

sau đó tôi nên tôi đã có thể làm ng new [email protected]/schematics my-app nhưng đáng ngạc nhiên đủ, nó đã không làm việc và được ném tree.branch is not a function.

Nhưng nếu bạn sao chép gói cài đặt trên toàn thế giới này để mô-đun cli của

/usr/local/bin/node_modules/@thescrollbar/schematics ->/usr/local/bin/node_modules/@angular/cli/node_modules/@thescrollbar/schematics

nó bắt đầu làm việc và bạn có thể tạo ra một ứng dụng mới đó là dựa trên sơ đồ của bạn ..

Bây giờ cho vấn đề mới mà tôi không giải quyết được, khi tôi cố gắng tạo một thành phần mới với

ng g c [email protected]/schematics logo

nó tạo ra nó bằng cách sử @schematics/angular mẫu, thay vì bộ sưu tập của tôi, mặc dù thực tế rằng khi tôi vào mục đích làm

ng g shat [email protected]/schematics logo

nó nói

Schematic "shat" không tìm thấy trong bộ sưu tập "@ thescrollbar/schematics ".

mà tôi nghĩ rõ ràng cho thấy rằng thực sự là sử dụng bộ sưu tập của tôi?

Bất kỳ ai quản lý để có được bộ sưu tập tùy chỉnh hoạt động? Trên toàn cầu và để tạo ra các thành phần/mô-đun?

+1

tôi đã thêm một số đoạn và thông tin để https://github.com/angular/angular-cli/issues/7744 từ những gì tôi đã có thể để có được làm việc cho đến nay. – Splaktar

Trả lời

9

/usr/local/bin/node_modules/@ thescrollbar/sơ đồ ->/usr/local/bin/node_modules/@ góc/cli/node_modules/@ thescrollbar/sơ đồ

Vâng, đây là một vấn đề với việc thực hiện hiện tại. Đó là bởi vì chúng tôi (một cách mù quáng) gọi require.resolve về tên bộ sưu tập, tên này chỉ phân giải từ mô-đun hiện tại là CLI. Có bản sửa lỗi đến (PR 163) sẽ được phát hành trong tuần này sẽ giải quyết bằng cách sử dụng danh sách sau:

  • là một gói nút liên quan đến process.cwd()?
  • là một gói nút liên quan đến công cụ (CLI trong trường hợp của bạn)?
  • là một gói nút được cài đặt trên toàn cầu?

Bạn có thể nhận thấy có hai thiếu sót bị thiếu; nó là một gói liên quan đến sơ đồ của bạn và nó là một gói tương đối so với dự án của bạn? Đó là đến, nó chỉ là một chút phức tạp hơn để thực hiện. Trong mọi trường hợp, bạn có thể cài đặt sơ đồ của bạn trên toàn cầu và điều đó sẽ hoạt động tốt.

ng gc --collection = @ thescrollbar/sơ đồ biểu tượng

nó tạo ra nó bằng cách sử @ sơ đồ/mẫu góc, thay vì bộ sưu tập của tôi

Đó là một vấn đề được biết đến và chúng tôi có một PR sửa lỗi trong CLI. Đây là một sửa chữa mà cũng đến.

Cảm ơn bạn đã dùng thử Sơ đồ. Nó đã được một dự án thời gian dài bây giờ và chúng tôi vẫn đang sửa chữa rất nhiều các trường hợp cạnh nhỏ. Chúng tôi cũng sẽ có tài liệu hướng dẫn tốt hơn và hướng dẫn (bao gồm một sơ đồ schematics) rất sớm. Đó là khá nhiều công việc đang diễn ra, vì vậy cảm ơn bạn vì đã kiên nhẫn với nó.

Bạn có thể gửi các sự cố và lỗi trong repo Angular DevKit (https://github.com/angular/devkit).

+7

Câu trả lời tuyệt vời! (bởi nhà phát triển đã viết sơ đồ) – Brocco

+0

Bây giờ tất cả đã được sửa chưa? – foxx

0

Khắc phục nhanh vấn cli 1.4.1 là để chỉnh sửa node_modules/@angular/cli/commands/new.js, trong thời gian: function (commandOptions, rawArgs) thay đổi dòng

commandOptions.collectionName = this.getCollectionName(rawArgs);

để

commandOptions.collectionName = commandOptions.collection || this.getCollectionName(rawArgs);

Các vấn đề liên quan