禁用webpack的文件,查看vim swp文件

时间:2016-11-16 04:25:11

标签: vim webpack webpack-dev-server

每次我用vim打开文件时,webpack都会检测到更改并重新编译代码。 Vim创建了像.test.txt.swp这样的临时文件,这使得webpack相信项目中发生了一些变化。

禁用swp文件创建有所帮助,但我希望保持swp文件的安全,不要因为浏览器重新加载页面太过分心,也不要用不必要的代码编译。

如何让webpack知道它不应该对。* .swp文件的变化做出反应?

编辑: 它实际上是webpack-dev-server,它对检测到的新vim交换文件做出反应。只有在源文件中有特定条目即将编译时才会执行此操作。示例来自导入angular2,但不仅仅是: import '@angular/core'; import '@angular/common';

3 个答案:

答案 0 :(得分:11)

我对" webpack"一无所知,但您可以告诉Vim将交换文件存储在单个目录中,而不是使用'dir'设置存储当前目录。我在我的vimrc中使用它:

set dir=$HOME/.vim/tmp/swap
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif

这也将解决其他工具的问题,以及"悬空交换文件",VCS系统中的交换文件等。

如果你想忽略工具中的Vim交换文件(例如webpack),那么请记住,忽略.swp是不够的; Vim还可以创建包含.swo.swn等扩展名的交换文件。

答案 1 :(得分:3)

您可以根据模式排除文件:

module: {
  loaders: [
    {
      // existing loader config
      exclude: /\.swp$/,
    },
  ]
}

但是,您不应该默认捆绑所有内容;使用加载器测试仅捆绑.js个文件(或您明确需要的任何文件; .jsx.css等)。像这样的东西,例如:

module: {
  loaders: [
    {
      test: /.jsx?$/,
      loader: 'babel-loader',
      exclude: [/node_modules/, 'test/', /\.swp$/],
      query: {
        presets: ['es2015', 'react']
      }
    },
    {
      test: /\.css$/,
      loader: "style-loader!css-loader"
    },
  ]
}

答案 2 :(得分:0)

对我来说,答案是webpack配置的以下更改

<webpackConfObject>.devServer.watchOptions = {
  ignored: /\.sw.$/
};

模块的exclude属性不适用于触发事件以在webpack dev服务器上重新加载页面的文件观察器,但您可以ignore匹配模式的文件。