Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为已发布的npm库的子文件提供多个模块格式_Javascript_Npm_Webpack_Package.json_Rollup - Fatal编程技术网

Javascript 如何为已发布的npm库的子文件提供多个模块格式

Javascript 如何为已发布的npm库的子文件提供多个模块格式,javascript,npm,webpack,package.json,rollup,Javascript,Npm,Webpack,Package.json,Rollup,给定一个在npm上发布的包,其中包含一个package.json,该包指向3个独立的分发文件,如下所示: { ... “名称”:“@myorg/mymodule”, “main”:“mymodule.umd.js”, “模块”:“mymodule.esm.js”, “unpkg”:“mymodule.min.js” } 公众使用情况如下所示: 从“@myorg/mymodule”导入mymodule mymodule()/…做一些事情 或者在使用commonJS时 const mymodul

给定一个在npm上发布的包,其中包含一个
package.json
,该包指向3个独立的分发文件,如下所示:

{
...
“名称”:“@myorg/mymodule”,
“main”:“mymodule.umd.js”,
“模块”:“mymodule.esm.js”,
“unpkg”:“mymodule.min.js”
}
公众使用情况如下所示:

从“@myorg/mymodule”导入mymodule
mymodule()/…做一些事情
或者在使用commonJS时

const mymodule=require('mymodule')
mymodule.default()
如何构造包以发布其他导入。例如,假设我们想要发布一个特性或本地化,我们不希望它成为每个人的捆绑包的一部分,因为只有少数人需要该特性。理想情况下,用法如下所示:

从“@myorg/mymodule”导入mymodule
从“@myorg/mymodule/fr”导入fr
mymodule({
地点:fr
})
我如何构建我的包以允许这种情况?从技术上讲,我可以进行这些导入,但如果我发布
esm
网页包或汇总失败(意外的标记“导出”),因为他们认为这应该是通用的JS构建,如果我发布
umd
,他们会发出警告,说找不到默认的
导出。唯一有效的方法是从“@myorg/mymodule/fr.esm”显式导入
import fr

然而,作为一名软件包维护人员,我希望预先配置软件包,以便更好地与捆绑包一起工作,而不是要求用户了解其捆绑包的内部结构,或者依靠树的晃动来减小大小。这在
main
module
unpkg
中已经非常有效。对于主文件,如何对其他文件执行类似操作