ES6 (ECMAScript 2015) 模块:导入索引.js
ES6 (ECMAScript 2015) modules: import index.js
在互联网上查找,我对特殊的"index.js"模块文件感到困惑。
使用babelJS + Node.js 或 Browserify/Webpack,我可以使用 import myLib from "./libs"
在 "libs" 目录中导入一个 "index.js" 模块(即省略/index
或/index.js
部分(。
ES6 (ECMAScript 2015( 模块是否支持"index.js"模块分辨率(指定包含文件夹(是官方标准?或者它只是"自定义"节点.js/CommonJS转译行为?
是否可以省略/index
|/index.js
所有浏览器中导入的一部分(当所有浏览器都支持模块时(?
ES6 (ECMAScript 2015( 模块支持的"index.js"模块分辨率(指定包含文件夹(是否为官方标准?
不。ES2015不包含有关模块加载器或如何解释模块标识符的任何内容。
<小时 />或者它只是"自定义"Node.js/CommonJS转译行为?
是的。您可以在文档中阅读有关模块解析算法的信息。相关部分:
require(X) from module at path Y
1. If X is a core module,
a. return the core module
b. STOP
2. If X begins with './' or '/' or '../'
a. LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"
[...]
LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
a. Parse X/package.json, and look for "main" field.
b. let M = X + (json main field)
c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text. STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon. STOP
<小时 />是否可以在所有浏览器中省略导入的/index|/index.js 部分(当所有浏览器都支持模块时(?
希望浏览器实现的目标是与现有模块加载器的最大兼容性,但目前我们不知道。也许它也与浏览器无关,但与服务器如何解析模块标识符有关。我承认我最近没有关注发展,所以非常感谢任何其他见解:)
Node.js团队正在研究一种解决方法:https://nodejs.org/api/esm.html#esm_customizing_esm_specifier_resolution_algorithm
node --experimental-specifier-resolution=node index
- 如何使用url加载程序在webpack中导入多个图像
- 名称输入的索引
- 在jQuery中获取表的行索引
- 如何将JSON数据导入我的ejs模板
- 测试索引值是否等于某个数字的倍数
- 循环遍历数组中的特定索引
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何将不可变的js导入angular 2(alpha)
- 在JavaScript中通过索引从对象数组中获取值
- 将数据从javascript文件导入VB.Net页面
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 导入jQuery脚本获胜'我不处理html文件
- 在索引.html和应用.js [node.js] 之间共享变量
- 如何为高图中的区域线创建z索引
- 下拉列表在使用z索引放置在前面后停止工作
- javascript导入的最佳实践是什么
- 减去两个索引不同但值相同的整数
- ES6 (ECMAScript 2015) 模块:导入索引.js
- ES6 在索引文件中导出/导入
- 查找最后一个导入语句的索引