2016-06-06 146 views
8

在为我的网站创作我的作品时,我有一些中间文件,我想保留在我的“媒体”文件夹中。有没有办法用Webpack忽略文件类型?

但随后webpack开始抱怨说它不知道如何处理这些文件。

有没有简单的方法可以说,不用担心.pdn扩展名的任何文件?

我想在我的webpack.config.js这些选项,它并没有帮助:

  1. { test: /\.pdn?$/, loader: 'raw', exclude: /.*/}
  2. { test: /\.pdn?$/, exclude: /.*/}

回答

0

的问题是不是的WebPack想用那些做文件,但是当你需要这些文件时你想要做什么?你是否想要使用Javascript中的内容,你是否想要给你构建文件或其他内容的路径?

如果您不需要任何.pdn文件,但Webpack仍会尝试加载它们,那么您可能正在使用动态要求。 Dynamic requires可以做很奇怪的事情,通常会试图捆绑得太多,所以你应该避免使用它们。

如果您确实想要以某种方式访问​​文件,请使用file-loader。

在上例中,第一个加载器选项不起作用,因为您排除了exclude子句中的所有内容。你可以让webpack将raw-loader应用到符合'test'的文件,但是忽略与'exclude'匹配的文件,这就是你的情况。改为使用{ test: /\.pdn$/, loader: 'raw' }

+0

我只是想的WebPack忽略它们。就好像它们不存在一样。我看着动态需求,它看起来不像我这样做(在require语句中的字符串连接)。 – Vaccano

+0

只要你不需要它们,Webpack将不会尝试加载它们并忽略它们。你确定你总是只需要直接定义的字符串?没有要求从变量或类似的东西? – Ambroos

+0

不,我没有任何....我只是将文件移动到其他地方(离开我的开发树),错误消失了。 (我希望找到一种方法来让它忽略它,所以我可以把它留在那里...但是..啊) – Vaccano

12

您可以将ignore-loader插件和匹配文件添加到它。

(在webpack.config.js

这将忽略所有.css文件。

module.exports = { 
    // ... other configurations ... 
    module: { 
    loaders: [ 
     { test: /\.css$/, loader: 'ignore-loader' } 
    ] 
    } 
}; 

我需要它,因为我需要一些node_modules原装进口多种字体格式,但我只是想woffwoff2格式。

我的解决办法:

config = { 
    // ... config ... 
    module: [ 
    { test: /(\.woff|\.woff2)$/, loader: 'url?name=font/[name].[ext]&limit=10240&mimetype=application/font-woff' }, 
    { test: /\.ttf$/, loader: 'ignore-loader' }, 
    { test: /\.eot$/, loader: 'ignore-loader' } 
    ] 
} 
+1

不错,只是我需要的(我正要写这个我自己:)) – magikMaker

+1

嗨!我使用这种技术,但在生成的CSS捆绑我有这样的东西:URL([对象对象])的ttf/eot的URL打破了CSS。你有什么提示要做什么? – norekhov

+1

@norekhov你可以看到[这里](https://github.com/cherrry/ignore-loader/blob/master/index.js)这个插件所做的就是'return'';'。如果你得到'[object Object]'那么它就是从别的地方来的! –

相关问题