Я пытался воспроизвести проблему сегодня, и, наконец, у меня есть кое-что, взломав мой каталог node_modules
.
В принципе, включение файла LESS без расширения работает, мы это знаем ... но ... включение без расширения из каталога node_modules
не удается.
Я создал простое репо, демонстрирующее следующее: https://github.com/robhuzzey/lessimporttest
<strong i="11">@import</strong> './one/two/three/four/test';
работает
как и: <strong i="14">@import</strong> 'thisisinnodemodules/one/two/three/four/test.less';
(обратите внимание, что в том числе из node_modules с расширением)
Тем не мение:
<strong i="19">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
(обратите внимание, что в том числе из node_modules без расширения)
не работает и выдает следующую ошибку:
$ npm run buildStyles
> [email protected] buildStyles /Users/robert.huzzey/Sites/test/lessissue
> lessc styles.less styles.css
FileError: 'thisisinnodemodules/one/two/three/four/test' wasn't found. Tried - /Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/node_modules/thisisinnodemodules/one/two/three/four/test,thisisinnodemodules/one/two/three/four/test.less in /Users/robert.huzzey/Sites/test/lessissue/styles.less on line 5, column 1:
4 // This does NOT work
5 <strong i="24">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
6
Я сделал несколько веток, чтобы показать, что это проблема с v3
но НЕ v2
... может ли кто-нибудь подтвердить, является ли это ожидаемым или нежелательным поведением (я не могу показаться чтобы найти что-нибудь об этом в Интернете).
Тоже столкнулся с этой проблемой сегодня.
Я также подтверждаю эту проблему. Вы можете воспроизвести его клонирование и запуск npm run dev в этом репо:
https://github.com/acacha/AdminLTETinkerLaravelMix
Учтите, что это может быть проблема с веб-пакетом, потому что при использовании команды lessc проблем не возникает.
@acacha Я думал то же самое, но я доказал обратное ... если вы видите репо, которое я создал в поднятом вопросе ... вы можете видеть, что он не использует веб-пакет, и у нас все еще есть эта проблема :(
Я покопался в меньшем количестве исходного кода, и это выглядело, вероятно, местом для начала тестирования некоторых вещей:
Я не хочу начинать копать или делать пиар, пока не узнаю, что это ненормальное поведение ... если один из сопровождающих Less подтвердит ... Я рад изучить исправление.
@robhuzzey Импорт из node_modules был добавлен только в последнюю альфа-версию 3.0, и это не предполагаемое поведение, которое не было бы импортировано без .less
в импорте. Определенно ошибка в версии 3.0 alpha 3. Спасибо, что изучили ее.
@ matthew-dean Я, кажется, исправил это с помощью этой работы: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath, но я не понимаю, где добавить тест для этого?
Все тесты проходят с этим изменением ... Я рад отправить PR на рассмотрение / предложения?
@robhuzzey Вам нужно будет добавить .less
NPM devDependency в package.json
, а затем добавить тест (в /tests/less
) для загрузки файла из модуля (возможно, import-module.less
file?) После добавления теста я бы проверил, что он не работает, без исправления, чтобы убедиться, что тест работает.
Спасибо @ matthew-dean. Я проверил, что текущие тесты сломались, прежде чем вставлять исправление ... где я борюсь, так это то, что все тесты были названы .less
.
Думаю, следующая задача - заставить его включить файл из node_modules
.
@robhuzzey У вас тоже будет время посмотреть https://github.com/less/less.js/issues/3116 ? Это нормально, если вы этого не сделаете.
@ matthew-dean конечно ... рад помочь.
Я сделал тест для своей ветки здесь: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath, но что-то работает не так, как я ожидал (думаю, я не совсем понимаю, как включить тест для эта работа).
Если вы можете указать мне, что я делаю не так, я был бы признателен :)
Извините @ matthew-dean, я сейчас работаю за границей, так что теперь в другом часовом поясе ... с удовольствием посмотрю на ваши проблемы, если вы дадите мне знать, как писать тесты для этой библиотеки? Я пытался несколько раз периодически, но чувствую, что это, вероятно, что-то очевидное, вы можете с легкостью сказать мне :)
@robhuzzey Я не знаком с синтаксисом file:
в NPM, но в остальном мне кажется, что он должен работать правильно. Единственное, что вам нужно сделать, это поместить import-module.css
в test/css
, который затем используется как файл сравнения с ожидаемым результатом, чтобы тест мог проверить его работу. Когда вы запускаете grunt quicktest
, вам может потребоваться настроить незначительные вещи в CSS вывода, такие как перевод строки или отступы, чтобы они соответствовали выводам Less. Вы даже можете создать пустой файл для своего первого теста, а затем скопировать / вставить ожидаемый результат в журнал консоли. Пока он выводит наборы правил из модулей с опущенным .less
, это важно. Я бы на самом деле смешал ваш тест так, чтобы некоторые (или один) импортировались с .less
а некоторые без, для более надежного теста.
@ matthew-dean, спасибо ... в конце концов, это было так просто ... просто нужен CSS для сравнения!
Я и раньше не знал о синтаксисе file://
в NPM ... но теперь я понимаю, что это хороший вариант использования, а не создание фактического пакета NPM только для теста :)
Я сделал пиар сейчас: https://github.com/less/less.js/pull/3120 Я не уверен в лучшем описании ... если у вас есть примеры, которым я могу следовать и т. Д., Или шаблон, я с радостью следуй за ним.
Спасибо.
Эта проблема была решена с помощью: https://github.com/less/less.js/pull/3120.
@robhuzzey Есть ли сроки, когда будет выпущена новая альфа-
@ stefan-schweiger Я собираюсь выпустить это сегодня или завтра вечером.
Если кто-то заинтересован в участии в репо Releasing for the Less, непременно свяжитесь со мной здесь или в Твиттере @matthewdeaners.
@ stefan-schweiger извини, только что видел это. У меня нет возможности выпускать, как у Мэтью Дина (если честно, это мой первый вклад в Less).
@ matthew-dean, как ты, наверное, понимаешь, я сейчас очень занят, но у меня скоро запланировано «свободное время», так что я вернусь к тебе тогда, если это нормально? (Я просто не могу добавить больше к тому, что делаю прямо сейчас).
спасибо @ matthew-dean за исправление https://github.com/less/less.js/issues/3123 , поэтому я даже получил эту ошибку в своей сборке релиза. Так что не волнуйтесь, @robhuzzey, это сработало путем
Эта проблема все еще сохранялась в версии 3.0.1.
Я вручную понизил версию до 2.7.3, чтобы решить эту проблему.
@allentcm В этом нет смысла. Менее 2.7.3 вообще не импортирует из папки node_modules.
@ matthew-dean @allentcm, понижение версии до 2.7.3
@ matthew-dean @allentcm @babsonmatt, у меня тоже сработало понижение до 2.7.3 👍