2016-08-02 1091 views
1

我正在使用Browserify,Babel,吞咽并注意到一种奇怪的行为。Browserify,Babel和文件扩展名

比方说,我有一个名为'./lib.js'的文件。是ES6,我应该能够使用两种语法:

import lib from "./lib.js" 
import lib from "./lib" 

但是第一种语法总是工作,但对于一些模块第二个没有。而不是通过我的出口获取对象,我得到一个空的对象。

browserify的行为与我们是否包含扩展名不同?它对我们应该如何申报出口有额外的限制吗?

其实这是一个问题,因为我最近在我的项目中添加了Typescript,tsify。由于某些原因,当我导入从打字稿编译的文件时,我必须指定.js扩展名(它不工作没有)。但是,当我从另一个.ts文件导入.ts文件时,我不想指定扩展名,因为我希望Typescript能够拾取.ts文件(当我没有指定扩展名时它会执行此操作),并且使用Browserify拾取已编译的文件js文件(它也是如此,但无法识别模块)。

回答

2

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

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

更多

我这样做,显示allowJs使用及其影响,你可能会发现有用的视频:https://www.youtube.com/watch?v=gmKXXI_ck7w