在我的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"
},