2013-02-19 15 views
5

Trong dự án web của tôi, tôi đã chia CSS của mình thành các tệp LESS riêng biệt vì lý do bảo trì. Tôi có một tập tin gọi là config.less hoạt động như một tập tin tổng thể nhập khẩu các tập tin ít khác, bằng cách sử dụng chỉ thị @import. Vấn đề với thiết lập này có vẻ là tôi nhận được rất nhiều "biến không khai báo" & "Không được khai báo mixin" trong khi chỉnh sửa các tệp LESS của tôi, ví dụ khi thêm biến thuộc tính được gọi là @textColor trong base.less, đó là tuyên bố trong một tập tin ít được gọi là variables.less. Có cách nào để làm cho các yếu tố cần thiết web nhận thức được các biến và mixin được định nghĩa trong các tệp bên ngoài ít hơn không?LESS @import & Web Essentials 2012

Một điều mà dường như bị vấp ngã lên Essentials Web là khi tôi đang sử dụng các tính năng truyền thông truy vấn lồng nhau của LESS:

.some-selector { 
    background: #000; 
    @media only screen and (max-width: 800px) { 
     background: #fff; 
    } 
} 

Việc kê khai @media lồng nhau được một gạch dưới màu đỏ, và trên di chuột nó nói "Không mong đợi '@' chặn trong quy tắc kiểu". Di chuột lên thuộc tính nền lồng nhau cho biết màu "Xác thực: 'màu' không phải là thẻ HTML hợp lệ.

Trả lời

2

Tôi không thể đưa ra câu trả lời về vấn đề @media với Web Essentials, nhưng tôi có thể đưa ra lời khuyên về các biến và vấn đề mixin.

về cơ bản, thay đổi tập tin config.less của bạn để có variables.less và bất kỳ tập tin mixin khác là @import-once, sau đó cũng thêm @import-once 'variables.less vào mỗi tập tin có sử dụng biến từ nó (làm tương tự cho bất kỳ tập tin mixin sử dụng).

Điều này làm là nhập tệp nếu bạn đang làm việc trên nó (như số base.less) của bạn, nhưng khi tất cả các tệp được biên soạn bởi config.less, nó sẽ chỉ nhập variables.less một lần và không phải một lần nữa cho mỗi tệp cũng tham chiếu đến variables.less.

+1

Vì lý do nào đó, nhập một lần không hoạt động đối với tôi. Tôi có một tập tin style.less chính mà chỉ chứa nhập khẩu. Từ đó tôi nhập-một khi một tập tin mixin.less tuyên bố một lớp .clearfix và lớp học được bao gồm như nó phải là ... Tốt. Bây giờ trong một tệp khác, tôi cũng nhập một lần tệp mixin.less để lấy intellisense và sau đó nhập một lần tệp đó vào style.less chính. Tôi sẽ nghĩ rằng nó chỉ nên bao gồm các lớp .clearfix một lần, nhưng tiếc là nó được bao gồm nó hai lần? bất kỳ ý tưởng? – MattyP

+1

Cảm ơn @ScottS! Đây chính xác là những gì tôi đang tìm kiếm. Nên đã làm phiền đọc tài liệu LESS kỹ hơn :) Theo tài liệu, '@ import-once' sẽ là hành vi mặc định của' @ import' bắt đầu từ câu 1.4.0. – Unless

+0

@MattyP: Âm thanh style.less đó giống như tệp 'config.less' của tôi. Trong trường hợp đó, chúng tôi dường như có các thiết lập khá giống nhau. Vì vậy, tập tin 'style.less được biên dịch' chứa lớp' .clearfix' hai lần? – Unless