使用子文件夹发布es6和commonjs

时间:2018-02-23 22:37:30

标签: javascript npm ecmascript-6 package.json commonjs

我可以为lib指定commonjs的主文件,为"main": "./index.js"指定"module": "./index.es.js"的es6。

但是,当我导入package.json时,它是如何工作的?是使用myfile.js还是myfile.es.js

为什么不能指定子文件夹而不是单个主文件?

1 个答案:

答案 0 :(得分:0)

你提到的那篇博文中没有太大的魔力,他只是要求node_modules/his-module/P.js

捆绑商需要一个条目,因为(理论上)就是你拥有

的地方
module.exports = {}

代码,它允许捆绑者访问您的功能。

如果您使用的是兼容esmodule的捆绑包,例如webpack或汇总,则会读取module密钥

import someFunction from 'your-module';

将导入es模块,除非你使用像browserify这样的东西,这将采用commonjs版本。

您也可以明确要求提供不同的文件

import someFunction from 'your-module/lib/index.min.js';

无论你在这里要求什么文件,它都会导入它。如果在模块之后添加/,那么现在您已经超出了主要或模块路径约定并要求提供您想要的任何文件。