Magento 2: Làm thế nào tôi chỉ có thể triển khai chủ đề của mình


33

Tôi đã sử dụng điều này để triển khai nội dung nhưng nó đang mất quá nhiều thời gian.

php bin/magento setup:static-content:deploy 

sau đó tôi tìm ra cách thêm ngôn ngữ nhanh nhưng nó vẫn triển khai tất cả các chủ đề.

php bin/magento setup:static-content:deploy  en_US

Làm thế nào tôi deploychỉ có thể nội dung chủ đề của tôi mà thôi?


FYI có một PR sẽ thêm khả năng này và nhiều hơn nữa. Tôi nghĩ rằng nó có thể sẽ ra mắt với phiên bản 2.2.
thdoan

Một giải pháp tiềm năng khác nhưng dành cho chế độ sản xuất magento.stackexchange.com/questions/126270/ trên

Tôi đang sử dụng magento 2.0.4 và sử dụng <code> php -dmemory_limit = 8G bin / magento setup: static-content: triển khai --theme Rws / fonddecave en_US de_DE fr_FR </ code> Nhưng lỗi đang đến - tùy chọn không tồn tại. Sai lầm của tôi có ai có thể giúp đỡ về điều này?
Raghwendra Ojha

Nếu bạn có một câu hỏi mới, vui lòng hỏi nó bằng cách nhấp vào nút Đặt câu hỏi . Bao gồm một liên kết đến câu hỏi này nếu nó giúp cung cấp bối cảnh. - Từ đánh giá
Shoaib Munir

1
@DarrenFelton xong.
Qaisar Satti

Câu trả lời:


56

Kể từ 2.1.1, giờ đây bạn có thể triển khai các chủ đề cụ thể hoặc loại trừ các chủ đề:

Triển khai các chủ đề cụ thể:

php bin/magento setup:static-content:deploy --theme Magento/backend --theme Vendor/mytheme

Không bao gồm các chủ đề:

php bin/magento setup:static-content:deploy --exclude-theme Magento/luma

nhập mô tả hình ảnh ở đây

Cập nhật các tùy chọn này hiện đang có trong tài liệu .


nó cũng không hoạt động với tôi, nó cũng không được đề cập trong devdocs.magento.com/guides/v2.1/config-guide/cli/ chủ Có hai lựa chọn.
Adeel Ishfaq

@AdeelIshfaq Giống như nhiều thứ khác, nó chưa được ghi lại, nhưng nó hoạt động trong 2.1.1. Tôi đính kèm một ảnh chụp màn hình.
Mathew Tinsley

Đã gửi yêu cầu kéo để có các tùy chọn mới được thêm vào tài liệu: github.com/magento/devdocs/pull/827
Mathew Tinsley

@MathewTinsley, có thể triển khai một chủ đề giao diện cụ thể trong tất cả các ngôn ngữ và một chủ đề phụ trợ cụ thể chỉ trong một ngôn ngữ không? Tôi không cần phần phụ trợ của mình bằng tất cả các ngôn ngữ ..
bpoiss

@bpoiss hiện có --languageThông số. Ví dụ--language en_US
Darren Felton

25

Tôi sợ rằng bạn không thể triển khai chỉ một chủ đề bằng setup:static-content:deploylệnh bảng điều khiển magento .

Tôi đã làm việc với sự phát triển của frontend M2 trong 2 tuần qua và tôi có thể khẳng định rằng nhà phát triển đó là một PAIN thực sự! Bạn sẽ mất rất nhiều thời gian để triển khai các thay đổi do sự phức tạp của hệ thống phân cấp tệp ít hơn và các dự phòng chủ đề.

Dù sao tôi Grunt bây giờ đây bạn sẽ tìm thấy cách cài đặt, cấu hình và sử dụng nó, với Grunt bạn có thể triển khai và / hoặc biên dịch lại các file ít hơn cho một chủ đề duy nhất.

Vì vậy, cách tiếp cận đó là ổn nếu bạn ở chế độ "nhà phát triển" vì Grunt không triển khai hình ảnh , phông chữ và tệp javascript để pub/static/...magento sẽ thực hiện lần đầu tiên.

Để kích hoạt chế độ nhà phát triển, hãy chạy:

php bin/magento  deploy:mode:set developer

Nếu bạn đang tìm cách triển khai toàn bộ nội dung cho một chủ đề duy nhất, productiontôi xin lỗi để nói rằng điều đó là không thể.

BTW Tôi khá chắc chắn rằng đó sẽ là một Yêu cầu Tính năng hay để thực hiện.

EDIT: Tin nóng!

Tôi tìm thấy một cách để triển khai tất cả các thay đổi nhanh hơn một chút:

  • Cài đặt Grunt + cấu hình chủ đề của bạn (một cho mỗi ngôn ngữ)
  • sau mỗi lần thay đổi chạy:
    • grunt exec:{theme_name} // Clean folders and deploy less files
    • grunt less:{theme_name} // Process less files

Voila bây giờ bạn sẽ có tất cả các thay đổi của mình được triển khai trong Chỉ ( 16 ?) 12 ~ 16 giây, 12 giây là hồ sơ cá nhân của tôi!

EDIT: Tin tức mới nhất 2!

Khẳng định! nếu bạn đang thực hiện thay đổi đối với một tệp (đã được triển khai) .less chỉ chạy grunt less:{theme_name}.

Vì vậy, bạn chỉ phải chạy grunt exec:{theme_name}khi:

  • Thêm / Xóa / Đổi tên *.lesstệp
  • Thêm / Xóa / Đổi tên một *.jsPhim
  • Thêm / Xóa / Đổi tên *.csstệp
  • Thêm / Xóa / Đổi tên imagetệp
  • Thêm bớt requirejs-config.js

Ngoài ra tôi vô hiệu hóa blocks, layoutsfull pageCaches, vì vậy bất kỳ thay đổi mẫu và / hoặc bố trí xml sẽ được hiển thị tự động.


bạn có thể hướng dẫn tôi làm thế nào để thay đổi css thông qua tôi ít bị mắc kẹt trong topmenu. một số mặt hàng được tìm thấy nhưng một số thì không nhưng có css ở đó .. như .nav-sectionstrẻ con level0.
Qaisar Satti

Đây là một chủ đề rất lớn, tôi khuyên bạn nên đọc (toàn bộ) hướng dẫn chính thức ( devdocs.magento.com/guides/v2.0/frontend-dev-guide/ trộm ). bạn phải hiểu tất cả lib > module > theme > fallback. Như một điểm khởi đầu hãy xemlib/web/css
MauroNigrele

Bạn có thể xem tài liệu Thư viện UI trong cửa hàng của riêng bạn hoặc tại đây: magento2-demo.nexcess.net/pub/static/frontend/Magento/luma/ cũng như
MauroNigrele

2
Còn khi bạn chỉnh sửa một plugin JS thì sao? Tôi phát hiện ra rằng những thay đổi không được phản ánh trên trang web. Tôi đã phải xóa tệp JS đã chỉnh sửa khỏi pub/staticvà triển khai lại ( setup:static-content:deploy) để thay đổi hiển thị.
thdoan

Không chắc chắn tại sao đây là câu trả lời được chấp nhận, câu trả lời dưới đây tốt hơn nhiều.
Tisch

16

Trong Magento 2, bạn có thể triển khai nội dung các chủ đề cụ thể và cũng loại trừ các chủ đề bằng các lệnh này:

Nội dung Triển khai các chủ đề cụ thể Bằng lệnh này:

php bin/magento setup:static-content:deploy --theme Vendor/firsttheme --theme Vendor/secondtheme

Loại trừ các chủ đề Bằng lệnh này:

php bin/magento setup:static-content:deploy --exclude-theme Vendor/yourtheme

Nếu bạn cần triển khai nội dung tĩnh cho ngôn ngữ cụ thể (en_US) và loại trừ chủ đề khác và không cần thu nhỏ tệp HTML thì hãy sử dụng lệnh này:

magento setup:static-content:deploy en_US --exclude-theme Vendor/yourtheme --no-html-minify

5

Đây là lối tắt để chỉ triển khai chủ đề của bạn

-a cho khu vực

-t cho chủ đề

-l cho ngôn ngữ

php bin/magento setup:static-content:deploy en_US -a frontend -t Magento/luma

Nguồn


1
Không nên có một -ltrước en_US?
James Harrington

2

có vẻ như bây giờ bạn phải triển khai bất kỳ ngôn ngữ nào ngoại trừ en_US bằng tay. tôi đang làm việc với 2.0.2 và chi nhánh phát triển.


Thưa ngài, đúng rồi.
dchayka

1

Để triển khai một chủ đề cụ thể với một ngôn ngữ cụ thể:

php bin/magento setup:static-content:deploy --theme Magento/backend --theme Vendor/mytheme pt_BR


1

Nếu magento của bạn ở chế độ nhà phát triển thì hãy triển khai chủ đề cụ thể bằng các lệnh bên dưới:

Xóa nội dung tĩnh

rm -rf pub/static/*                            /*to remove files excluding .htaccess*/

rm -rf var/view_preprocessed/*                 /*to remove files excluding .htaccess*/

Và sau đó

php bin/magento setup:static-content:deploy -f --theme Vendor/theme

HOẶC LÀ

php bin/magento s:s:d -f --theme Vendor/theme
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.