2016-11-10 2 views
0

У меня есть проект Angular2 (сгенерированный angular-cli). В проекте у меня есть основной модуль и подмодуль. Подмодуль представляет собой четко определенную концепцию, поэтому он хорошо подходит для использования в качестве (потенциально многоразового) NgModule.Доступ к общим стилям из Angular2 NgModule

Подмодуль инкапсулирует различные компоненты и предоставляет только один компонент наружу. Это хорошо, он работает хорошо, поэтому модуль может быть повторно использован.

Однако модуль имеет одну глобальную зависимость, которая не позволяет полностью отключаться от модуля повторного использования. Файл scss обращается к общему файлу scss с использованием @import. Общий файл scss находится за пределами модуля.

Так, в частности, файл scss стиля внутри модуля относится к scss файлу вне модуля, используя относительные пути, например:

@import './../../../assets/styles/common-props'; 

Я не хочу, чтобы скопировать файл scss в модуль , Каков наилучший способ использования общего файла scss, чтобы модуль стал легко использовать? Есть ли наилучшая практика?

+0

Можете ли вы опубликовать часть кода. Я хотел бы посмотреть, что вы пытаетесь сделать. –

+0

@JohnBaird добавил код –

ответ

0

Не уверен, что здесь действительно хорошая практика. Все зависит от того, как вы хотите импортировать и управлять внешними ресурсами SCSS.

  1. Если вы хотите, чтобы ресурс SCSS обновлялся с помощью обновления Homebrew или NPM, тогда импорт его из исходного каталога - это путь.
  2. Если вы хотите вручную контролировать путь обновления к ресурсу SCSS, просто переместите файл в свою иерархию SCSS и импортируйте.

Как правило, я предпочитаю подход № 2.

У меня есть каталог под названием 'libs', который я организую внешние SCSS/CSS-файлы и просто импортирую из этой структуры папок.

Есть краевые случаи, где я использую # 1, но они редки.

+0

В сценарии 2 вам не нужно жестко кодировать относительный путь к файлу SCSS в модуль, что делает его недоступным для других проектов? –

+0

В сценарии 1 вы говорите, что я могу сделать модуль узла из файла scss и опубликовать его на нашем внутреннем сервере npm? –

+0

Я не уверен, что отвечаю на ваш вопрос, может быть, я не понимаю его полностью. Может быть, включить всю структуру SCSS и показать, как вы хотите, чтобы внешние ресурсы SCSS были вовлечены в ваш основной файл импорта? – Lowkase

Смежные вопросы