2016-04-21 51 views
0

我的应用程序是使用Webpack + Babel编译的React JSX/ES6。我的测试套件是Tape + Shallow Render,到目前为止,我已经能够通过babel-node(和babel-istanbul)运行所有内容,而无需运行Webpack和浏览器或无头浏览器。排除导入w/Babel?

然后我需要一个资产。 A .mp3,具体说明。

我所拥有的主要是:

import ding from '/sounds/ding.mp3'; 
... 
<audio src={ding} autoPlay={true} /> 

这适用于开发和生产,但没有的WebPack(和file-loader),它被绊倒:

/Users/orbiteleven/project/client/sounds/ding.mp3:1 
(function (exports, require, module, __filename, __dirname) { ID3 
                   ^
SyntaxError: Unexpected token ILLEGAL 

是否有办法通过Babel(或其他方法)排除进口? ignore并没有这样做,因为它只是阻止Babel解析文件,但包含它。

我喜欢不必包括像Karma + PhantomJS/Chrome/Electron/Whatever这样的复杂性(和缓慢)。

回答

0

将导入更改为像import ding from '../sounds/ding';这样的格式。在那里建立一个名为ding.js的模块(基本上是noop模块),并在webpack的一侧使用resolve.alias将导入映射到mp3文件。你会以

resolve: { 
    alias: { 
    '../sounds/ding': PATHS.ding 
    } 
}