在SASS中,是否可以从另一个目录导入文件?例如,如果我有这样的结构:
- root_directory
- sub_directory_a
- _common.scss
- template.scss
- sub_directory_b
- more_styles.scss
Run Code Online (Sandbox Code Playgroud)
template.scss可以导入_common.scss,@import "common"但是more_styles.scss可以导入_common.scss吗?我尝试了一些不同的东西,包括@import "../sub_directory_a/common"和@import "../sub_directory_a/_common.scss",但似乎没有任何工作.
我目前正在尝试弄清楚如何将我们在一些应用程序中使用的几个 .scss 文件打包到 NPM 包中。
我之前已经对 JS 和 TS 库做过这样的操作,但是我对包含非代码有效负载的包感到有点困惑,特别是因为包需要一个 index.js 入口点。
一些例子:
这些是 npm 包的有效用途还是我的想法都是错误的?我希望它成为一个包的主要原因是对其进行版本控制并通过“npm install package-name”轻松安装。
编辑:实际上,我通过删除 package.json 的“main”:“index.js”部分,npm 安装 github 的包并简单地将 scss 文件导入到我的消费应用程序中,使其工作正常。这种做法不正确吗?这会带来哪些问题呢?
谢谢!
我希望通过我的下一步行动得到很少的指导.在我们公司,我们开始研究新的管理面板.我想出了一个想法,用npm将它模块化为更小,更易于管理的部分.
我们正在开发的第一个也是最重要的模块是Media Browser.它是用React和Sass编写的.它依赖于另一个现在称为框架的模块,它是我们管理面板的基础.它也基于Sass并包含所有重要的mixins和变量.
现在,问题是:如何将mixins和变量导入Media Browser包?相对路径不同.例:
开发媒体浏览器时的目录结构:
node_modules
framework
vars.scss
styles.scss
package.json
Run Code Online (Sandbox Code Playgroud)
管理面板中使用媒体浏览器时的目录结构:
node_modules
framework
vars.scss
media-browser
styles.scss
package.json
Run Code Online (Sandbox Code Playgroud)
vars.scss的相对路径是不同的.
我是新来的,所以我的方法可能不对.我也尝试过凉亭,但我认为使用npm @ 3的扁平依赖树它是一样的.
我在这里找到了类似的问题: 通过npm导入Sass,但我宁愿避免一些变通方法.恕我直言,这应该是现在在npm @ 3更优雅的方式.
谢谢