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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm main:用于浏览器repos的index.js相关的知识,希望对你有一定的参考价值。

我想在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”:“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

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

以上是关于npm main:用于浏览器repos的index.js的主要内容,如果未能解决你的问题,请参考以下文章

作为 npm 模块安装和访问本地文件夹

将自己的组件打包发布到npm

为啥 NPM 7.17 不安装我的对等依赖项

NPM 依赖关系 - Git Repo 中的文件夹?

如何开发NPM包

npm的scripts的使用