禁用 webpack 的文件监视 vim 个 swp 文件
Disable webpack's file watching for vim swp files
每次我用 vim 打开文件时,webpack 都会检测到更改并重新编译代码。 Vim 创建像 .test.txt.swp 这样的临时文件,这让 webpack 相信项目中发生了一些变化。
禁用 swp 文件创建有帮助,但我想保持 swp 文件的安全,不要因浏览器过于频繁地重新加载页面或不必要的代码编译而分心。
如何让 webpack 知道它不应该对 .*.swp 文件的更改做出反应?
编辑:
它实际上是 webpack-dev-server 对检测到的新 vim 交换文件做出反应。并且只有当源文件中有特定条目将要被编译时,它才会这样做。示例来自导入 angular2,但不仅限于它:
import '@angular/core';
import '@angular/common';
我对 "webpack" 一无所知,但您可以告诉 Vim 将交换文件存储在单个目录中,而不是使用 'dir'
设置的当前目录。我在我的 vimrc 中使用这个:
set dir=$HOME/.vim/tmp/swap
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif
这还将解决其他工具的问题,以及 "dangling swap files"、VCS 系统中的交换文件等问题。
如果你想忽略 Vim 工具(如 webpack)中的交换文件,请记住仅忽略 .swp
是不够的; Vim 也可以创建扩展名为 .swo
、.swn
等的交换文件
您可以根据模式排除文件:
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"
},
]
}
我的答案是对 webpack 配置进行以下更改
<webpackConfObject>.devServer.watchOptions = {
ignored: /\.sw.$/
};
模块的排除属性不适用于触发事件以在 webpack 开发服务器上重新加载页面的文件观察器,但您可以 ignore 匹配模式的文件。
每次我用 vim 打开文件时,webpack 都会检测到更改并重新编译代码。 Vim 创建像 .test.txt.swp 这样的临时文件,这让 webpack 相信项目中发生了一些变化。
禁用 swp 文件创建有帮助,但我想保持 swp 文件的安全,不要因浏览器过于频繁地重新加载页面或不必要的代码编译而分心。
如何让 webpack 知道它不应该对 .*.swp 文件的更改做出反应?
编辑:
它实际上是 webpack-dev-server 对检测到的新 vim 交换文件做出反应。并且只有当源文件中有特定条目将要被编译时,它才会这样做。示例来自导入 angular2,但不仅限于它:
import '@angular/core';
import '@angular/common';
我对 "webpack" 一无所知,但您可以告诉 Vim 将交换文件存储在单个目录中,而不是使用 'dir'
设置的当前目录。我在我的 vimrc 中使用这个:
set dir=$HOME/.vim/tmp/swap
if !isdirectory(&dir) | call mkdir(&dir, 'p', 0700) | endif
这还将解决其他工具的问题,以及 "dangling swap files"、VCS 系统中的交换文件等问题。
如果你想忽略 Vim 工具(如 webpack)中的交换文件,请记住仅忽略 .swp
是不够的; Vim 也可以创建扩展名为 .swo
、.swn
等的交换文件
您可以根据模式排除文件:
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"
},
]
}
我的答案是对 webpack 配置进行以下更改
<webpackConfObject>.devServer.watchOptions = {
ignored: /\.sw.$/
};
模块的排除属性不适用于触发事件以在 webpack 开发服务器上重新加载页面的文件观察器,但您可以 ignore 匹配模式的文件。