我想在npm上发布一些repos。但这些是浏览器回购,因此造成了一个问题:package.json中的main
属性似乎是用于指定节点(而不是浏览器)模块。
来自https://docs.npmjs.com/files/package.json#main
主要
主要字段是模块ID,它是程序的主要入口点。也就是说,如果您的包名为foo,并且用户安装它,然后执行require(“foo”),那么将返回主模块的exports对象。
这应该是相对于包文件夹根目录的模块ID。
对于大多数模块而言,最有意义的是拥有一个主脚本并且通常没有其他内容。
那么我应该将什么用于浏览器回购的npm包?只是省略了字段?指向回购捆绑?别的什么?
我查看了几个浏览器repos,看来这是当前的约定(取自Three.js和Rollup github repos):
main
指向<script>
代码,而jsnext:main
和module
指向es6模块。
模块包有一些命名约定:
等等。
上面提到的https://github.com/rollup/rollup/wiki/pkg.module似乎是一个合理的参考。谷歌这个更多:
main jsnext:主模块属性package.json
底线:有惯例但没有标准。