解析 NodeJS CSS 子包?
Resolving NodeJS CSS subpackages?
我正在创建 CSS library and I'd like to support subpackages the same way RxJS does. For example with RxJS we can import the entire kitchen sink like this (Taken from https://www.npmjs.com/package/rxjs):
var Rx = require('rxjs/Rx');
Rx.Observable.of(1,2,3); // etc
或者像这样的个人运营商:
var Observable = require('rxjs/Observable').Observable;
// patch Observable with appropriate methods
require('rxjs/add/observable/of');
require('rxjs/add/operator/map');
我的初步观察是,这可能就像将模块打包到根模块的子文件夹中一样简单。例如 RxJS node_modules
安装文件夹有子文件夹 rxjs/add/observable
,其中包含所有可观察到的扩展,如 zip.js, throw.js...
等
因此,遵循此模式 postcss-import 可以扩展为以相同的方式解析子模块文件夹中的导入。例如:
@import @superflycss/utilities-layout/margins
将导入 node_modules/superflycss/utilities-layout/margins.css
,如果 node_modules/superflycss/utilities-layout/margins.css
不存在,它将查找 node_modules/superflycss/utilities-layout/margins/index.css
,如果不存在,则会抛出错误。
@import @superflycss/utilities-layout/margins/
只会导入 node_modules/superflycss/utilities-layout/margins/index.css
。
我正在制作的模块将厨房水槽打包在目录 target/main/css/index.css
中。这会公开所有 css 实用程序或组件(取决于它是什么类型的模块)。
问题是,与 RxJS 一样,这可能是一个非常重的文件(例如包含对所有 Google 字体的导入)。
所以我希望通过遵循 RxJS 方法,通过遵循 NodeJS require.resolv() 算法使用的相同规则,整个事情变得更加灵活和标准化。想法?
PostCSS 确实支持以与 RxJS 相同的方式导入子模块。我添加了一个带有测试用例的拉取请求,说明了它是如何完成的 here.
我正在创建 CSS library and I'd like to support subpackages the same way RxJS does. For example with RxJS we can import the entire kitchen sink like this (Taken from https://www.npmjs.com/package/rxjs):
var Rx = require('rxjs/Rx');
Rx.Observable.of(1,2,3); // etc
或者像这样的个人运营商:
var Observable = require('rxjs/Observable').Observable;
// patch Observable with appropriate methods
require('rxjs/add/observable/of');
require('rxjs/add/operator/map');
我的初步观察是,这可能就像将模块打包到根模块的子文件夹中一样简单。例如 RxJS node_modules
安装文件夹有子文件夹 rxjs/add/observable
,其中包含所有可观察到的扩展,如 zip.js, throw.js...
等
因此,遵循此模式 postcss-import 可以扩展为以相同的方式解析子模块文件夹中的导入。例如:
@import @superflycss/utilities-layout/margins
将导入 node_modules/superflycss/utilities-layout/margins.css
,如果 node_modules/superflycss/utilities-layout/margins.css
不存在,它将查找 node_modules/superflycss/utilities-layout/margins/index.css
,如果不存在,则会抛出错误。
@import @superflycss/utilities-layout/margins/
只会导入 node_modules/superflycss/utilities-layout/margins/index.css
。
我正在制作的模块将厨房水槽打包在目录 target/main/css/index.css
中。这会公开所有 css 实用程序或组件(取决于它是什么类型的模块)。
问题是,与 RxJS 一样,这可能是一个非常重的文件(例如包含对所有 Google 字体的导入)。
所以我希望通过遵循 RxJS 方法,通过遵循 NodeJS require.resolv() 算法使用的相同规则,整个事情变得更加灵活和标准化。想法?
PostCSS 确实支持以与 RxJS 相同的方式导入子模块。我添加了一个带有测试用例的拉取请求,说明了它是如何完成的 here.