我正在使用 Browserify、Babel、gulp 并注意到一个奇怪的行为。
假设我有一个名为“./lib.js”的文件。是 ES6,我应该可以同时使用这两种语法:
import lib from "./lib.js"
import lib from "./lib"
然而,第一种语法总是有效的,但对于某些模块,第二种则无效。我得到的是一个空对象,而不是我的导出对象。
无论我们是否包含扩展,browserify 的行为是否不同?它对我们应该如何申报出口有额外的限制吗?
实际上这是一个问题,因为我最近tsify
在我的项目中添加了 Typescript。出于某种原因,当我导入从 typescript 编译的文件时,我必须指定.js
扩展名(没有它就无法工作)。.ts
但是当我从另一个文件导入文件时.ts
,我不想指定扩展名,因为我希望 Typescript 拾取.ts
文件(当我不指定扩展名时它会这样做)并 Browserify 拾取编译的 js 文件(它也这样做但无法识别模块)。