npm main:用于浏览器repos的index.js

问题描述 投票:0回答:1

我想在npm上发布一些repos。但这些是浏览器回购,因此造成了一个问题:package.json中的main属性似乎是用于指定节点(而不是浏览器)模块。

来自https://docs.npmjs.com/files/package.json#main

主要

主要字段是模块ID,它是程序的主要入口点。也就是说,如果您的包名为foo,并且用户安装它,然后执行require(“foo”),那么将返回主模块的exports对象。

这应该是相对于包文件夹根目录的模块ID。

对于大多数模块而言,最有意义的是拥有一个主脚本并且通常没有其他内容。

那么我应该将什么用于浏览器回购的npm包?只是省略了字段?指向回购捆绑?别的什么?

browser npm module package.json
1个回答
0
投票

我查看了几个浏览器repos,看来这是当前的约定(取自Three.js和Rollup github repos):

  • “main”:“build / three.js”,
  • “jsnext:main”:“build / three.module.js”,
  • “module”:“build / three.module.js”

main指向<script>代码,而jsnext:mainmodule指向es6模块。

模块包有一些命名约定:

  • foo.module.js
  • foo.es.js
  • foo.mjs

等等。

上面提到的https://github.com/rollup/rollup/wiki/pkg.module似乎是一个合理的参考。谷歌这个更多:

main jsnext:主模块属性package.json

底线:有惯例但没有标准。

© www.soinside.com 2019 - 2024. All rights reserved.