В моей компании есть общий пакет, в котором в качестве зависимости используется начальная загрузка, и структура выглядит следующим образом:
+ - my-library
+ - node_modules
+ ...
+ bootstrap
+ scss
--_mixins.scss
--_functions.scss
--_variables.scss
--_buttons.scss
+-scss
-- _buttons.scss
-- main.scss
package.json
Идея этой библиотеки в том, что она будет использоваться многими командами.
Основные файлы моей библиотеки:
package.json
{
"name": "my-library",
"version": "1.0.0",
"description": "",
"scripts": {
"dev": "node-sass sass/index.scss --watch --output css"
},
"author": "",
"license": "ISC",
"dependencies": {
"bootstrap": "^4.1.2"
},
"devDependencies": {
"node-sass": "^4.9.2"
}
}
СКС / _buttons.scss
@import "./node_modules/bootstrap/scss/_mixins";
@import "./node_modules/bootstrap/scss/_functions";
@import "./node_modules/bootstrap/scss/_variables";
@import "./node_modules/bootstrap/scss/_buttons";
... THE CSS RULES FOR THE BUTTONS OF THE COMPANY ...
СКС / main.scss
@import "_buttons";
... THE CSS RULES FOR GENERAL STYLES OF THE COMPANY ...
Проблема в том, что другой проект потребляет мою библиотеку. Когда кто-то делает npm install --save my-library
пути, определенные для получения начальной загрузки, отличаются, потому что при начальной загрузке теперь это одна папка назад.
+ - consumer-project
+ - node_modules
+ ...
+ bootstrap
+ scss
--_mixins.scss
--_functions.scss
--_variables.scss
--_buttons.scss
+ - my-library
+-scss
-- _buttons.scss
-- main.scss
package.json
Если потребительский проект импортирует файл main.scss
, это не будет выполнено, поскольку теперь путь для начальной загрузки в файле _buttons.scss
теперь равен ../node_modules/bootstrap/
Мой вопрос:
Как правильно обращаться с путями зависимостей моей библиотеки?