package.json 中的“样式”字段

Posted

技术标签:

【中文标题】package.json 中的“样式”字段【英文标题】:"style" field in package.json 【发布时间】:2015-11-09 07:24:33 【问题描述】:

我注意到Bootstrap 和Normalize.css 在它们的 package.json 中都有一个“样式”字段。

他们为什么有这个?如果我不得不猜测,它是为了让用户像 require('bootstrap') 一样轻松地导入定义的样式表,但似乎并非如此。

【问题讨论】:

【参考方案1】:

来自 Techwraith 的 pull request,将其添加到 Bootstrap:

npm 中的许多模块开始公开它们的 css 入口文件 他们的 package.json 文件。这允许像npm-css 这样的工具, rework-npmnpm-less 从 node_modules 目录。 [...]

它实际上并没有写在任何地方,而是写在这些模块的代码中 现在。我们希望在某个时候实现标准化,但是 我们都分别达成了这个约定,所以我倾向于 随它去吧。 [...]

如果你想了解这种风格的 css 开发,我写了一篇 事情:

http://techwraith.com/your-css-needs-a-dependency-graph-too/

其他工具也有支持,比如browserify插件parcelify:

将 css 添加到使用 browserify 的 npm 模块中。

只需将样式键添加到您的 package.json 以指定包的 css 文件。 [...]

Parcelify 将连接模块中的所有 css 文件 main.js 取决于 - 在这种情况下只是 myModule.css - 在顺序 js依赖图,并将输出写入bundle.css

【讨论】:

由于这里提到的大多数工具都没有得到很好的维护,但我想提一下github.com/postcss/postcss-import 仍然使用style 属性。 (披露:我是 postcss-import 的维护者。)

以上是关于package.json 中的“样式”字段的主要内容,如果未能解决你的问题,请参考以下文章

在 package.json 中指定多个类型定义文件

Tree Shaking 与 package.json 中的 module 字段

package.json 安装插件时版本号前缀解析

如何使用 package.json 中的 typesVersions 字段为较新的 typescript 版本提供更严格的类型?

聊聊 package.json 文件中的 module 字段

(译)package.json详解