SAFE Stack はクライアント側に webpack が使われていて、 dotnet run を実行すると webpack が watch モードで動く。 そのときに Emacs でファイルを編集すると、Emacs が作る一時ファイルを webpack が見付けてエラーメッセージを出ていたので対処した。

Emacs は編集中で未保存のファイルについて 2 種類の一時ファイルを作る。 オリジナルのファイル名が foo だとすると、編集中の内容を #foo# という名前で保存し、また、それとは別に .#foo というシンボリックリンクを作成する。 後者のシンボリックリンクは実在しないパスを参照している。リンク先のパスは USER@HOST.DOMAIN.PID:EPOCH のような形式になっている。 webpack のエラーメッセージは、このリンク先が無い、というものである。 ごもっとも。

このようなシンボリックリンクを無視させるために webpack に以下の設定を追加した。

diff --git a/webpack.config.js b/webpack.config.js
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -92,6 +92,7 @@ module.exports = {
     // Configuration for webpack-dev-server
     devServer: {
         publicPath: '/',
+        watchOptions: { ignored: ['**/.#*'] },
         contentBase: resolve(CONFIG.assetsDir),
         host: '0.0.0.0',
         port: CONFIG.devServerPort,

diff --git a/webpack.tests.config.js b/webpack.tests.config.js
--- a/webpack.tests.config.js
+++ b/webpack.tests.config.js
@@ -81,6 +81,7 @@ module.exports = {
     // Configuration for webpack-dev-server
     devServer: {
         publicPath: '/',
+        watchOptions: { ignored: ['**/.#*'] },
         contentBase: resolve(CONFIG.assetsDir),
         host: '0.0.0.0',
         port: CONFIG.devServerPort,