在我的Enterprise共享npm包中处理依赖项的路径

在我的Enterprise共享npm包中处理依赖项的路径,npm,sass,bootstrap-4,shared-libraries,Npm,Sass,Bootstrap 4,Shared Libraries,我公司有一个共享包,它以引导作为依赖项,其结构如下所示: + - my-library + - node_modules + ... + bootstrap + scss --_mixins.scss --_functions.scss --_variables.scss --_buttons.scss +-scss -- _buttons.scss

我公司有一个共享包,它以引导作为依赖项,其结构如下所示:

+ - my-library
    + - node_modules
      + ...
      + bootstrap
        + scss
          --_mixins.scss
          --_functions.scss
          --_variables.scss
          --_buttons.scss
    +-scss
      -- _buttons.scss
      -- main.scss 
    package.json
这个库的想法是,它将在许多团队中使用。 我的库的主要文件:

package.json

scss/_buttons.scss

scss/main.scss

问题是当另一个项目使用我的库时。当有人执行npm安装--save my library时,为get bootstrap定义的路径不同,因为bootstrap现在是一个向后的文件夹

+ - 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
文件,这将失败,因为
\u buttons.scss
文件中的引导路径现在是
。/node\u modules/bootstrap/

我的问题是:
处理我的库的依赖项路径的正确方法是什么?

假设
我的库
位于
节点模块中,使用
--include path
选项引用
/node\u modules/
,这将在编译scss文件时启用
节点sass
查找引导

--include path
选项添加到
package.json
中的命令中

"scripts": {
    "dev": "node-sass --include-path ./node_modules/ sass/index.scss -o --watch --output css"
 },

sass/index.scss在哪里?你的意思是指scss/main.scss吗?另外,在第二个文件/文件夹结构中,它看起来像
+-my library
引导程序中。您希望它位于
节点\u模块中
正确吗?
@import "_buttons";
... THE CSS RULES FOR GENERAL STYLES OF THE COMPANY ...
+ - consumer-project

  + - node_modules
     + ...
     + bootstrap
       + scss
         --_mixins.scss
         --_functions.scss
         --_variables.scss
         --_buttons.scss
      + - my-library
        +-scss
          -- _buttons.scss
          -- main.scss 
        package.json
"scripts": {
    "dev": "node-sass --include-path ./node_modules/ sass/index.scss -o --watch --output css"
 },