2016-11-08 11 views
11

Когда Yarn используется для установки зависимостей, он по умолчанию помещает их в каталог node-modules.Как изменить каталог пакетов по умолчанию для пряжи?

Как я могу изменить это на i.e Laravel resources?
Как .bowerrc используется для шалаша, чтобы установить "directory": "resources/assets"

+0

Посмотрите эту ссылку для справки - https://yarnpkg.com/ru/docs/package-json#toc-directories –

+2

Мне этот вопрос не ответил. Существуют пакеты, которые необходимо установить для серверной части (например, «экспресс»), которые вам нужны со стороны браузера, например. 'jquery',' bootstrap', 'font-awesome'. Я использовал NPM для сервера и bower для jquery, bootstrap и т. Д. ... теперь с ** Прямой ** в одиночку. Я все еще не знаю, как изменить назначение для конкретной библиотеки, которую я хочу в своей папке «assets/vendor», или 'node_modules' – zabumba

ответ

10
yarn install --modules-folder ./resources 

UPDATE: Следите за этим GitHub Issue, поскольку эта функция не совсем стабильна.

UPDATE 2: Из Damien's ответ ниже, вы можете добавить --install.modules-folder "./resources" к .yarnrc file так, что вам не нужно постоянно передавать аргументы командной строки в течение каждого последующего вызова. Обратите внимание, что требуются двойные кавычки; без них вы получите Invalid value type 1:25 или аналогичную ошибку.

Затем вы можете передать .yarnrc в исходный элемент управления, чтобы другие разработчики проекта могли использовать те же настройки автоматически.

+2

Это ужасное решение. Такие вещи должны быть глобальными, а не одноразовые ключи командной строки. Я сбив с толку, как многие из этих решений node.js, похоже, были разработаны в несетевой среде с силосом. Многие сетевые системы помещают каталог пользователя в общий сетевой ресурс. Но установки GLOBAL находятся на системном уровне, а не на уровне пользователя. Там должна быть «прямая глобальная установка любого приложения», которая не требует от пользователя переопределять папку модулей в командной строке. Похоже, я отправлю еще один запрос на github для отказа. haha – Armand

+0

Достигнут некоторый прогресс на этом https://github.com/yarnpkg/yarn/pull/3792 –

+3

Для записи: вы можете использовать файл '.yarnrc', чтобы установить этот параметр, используя' --install.modules-folder ресурсы ([документация] (https://yarnpkg.com/en/docs/yarnrc)) – Damien

-2

Согласно Yarn Docs, вы можете указать каталоги в package.json файле

{ 
    "directories": { 
    "lib": "path/to/lib/", 
    "bin": "path/to/bin/", 
    "man": "path/to/man/", 
    "doc": "path/to/doc/", 
    "example": "path/to/example/" 
    } 
} 

При установке пакета, вы можете указать точное местоположение, чтобы поместить двоичные файлы, страницы человека , документация, примеры и т.д.

+1

просто попытался, но все зависимости все еще установлены в node_modules. Это работает для вас? Возможно, они находятся внутри пакета для сортировки файлов, если пакет поддерживает его –

+0

он не работает. https://stackoverflow.com/questions/48300008/how-to-change-dependency-installation-directory-at-yarn – neoerol

3

Вы можете создать файл .yarnrc со следующим содержанием:

--modules-folder resources 

Таким образом, каждый yarn команда будет иметь этот набор параметров.

+2

Просто хотелось добавить, что, хотя это и получилось, это было ** правильно **. Кроме того, вы можете добавить область: '--install.module-folder' будет устанавливать это значение только для команды' install', тогда как '- *. Modules-folder' должна применяться для каждой команды (таким образом, _should_ ведет себя одинаково как первая команда) –

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

  • Нет связанных вопросов^_^