Browserify,Babel和文件扩展名

时间:2016-08-02 19:45:52

标签: typescript gulp browserify babel tsify

我正在使用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文件(它也可以识别模块)。

1 个答案:

答案 0 :(得分:2)

  

由于某些原因,当我导入一个从typescript编译的文件时,我必须指定.js扩展名(它没有工作)。

这是因为TypeScript可能无法检测 js 文件。请将allowJs添加到编译器选项中。

更多

我制作了一段视频,其中显示了allowJs用法及其可能对您有用的影响:https://www.youtube.com/watch?v=gmKXXI_ck7w