【Node】Windows環境でSyntaxErrorが表示される問題の解決法「basedir=$(dirname “$(echo “$0” | sed -e ‘s,\\,/,g’)”」

Javascript

Windows環境でyarnやnpmでコマンド(スクリプト)を実行すると、「basedirがどうのこうの」というSyntaxErrorエラーが表示されることがあります。

例えば、Vuetifyをインストールした環境でyarn devを実行すると、以下のようなエラーとなります。

> yarn dev
yarn run v1.22.19
$ node --no-warnings ./node_modules/.bin/vite
C:\Users\th\Desktop\card-realtime\front\node_modules\.bin\vite:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
          ^^^^^^^

SyntaxError: missing ) after argument list
    at internalCompileFunction (node:internal/vm:73:18)
    at wrapSafe (node:internal/modules/cjs/loader:1178:20)
    at Module._compile (node:internal/modules/cjs/loader:1220:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47

この問題の対処法をメモしておきます。

スポンサーリンク

【解決法】package.jsonを修正する

package.jsonのscriptsに原因があります。

.binディレクトリ以下が指定されているとエラーが起こるようです。

{
  "name": "card-realtime-front",
  "version": "0.0.0",
  "scripts": {
    "dev": "node --no-warnings ./node_modules/.bin/vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "dependencies": {
    "@mdi/font": "7.0.96",
    "roboto-fontface": "*",
    "vue": "^3.3.0",
    "vuetify": "^3.0.0"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.5.0",
    "sass": "^1.69.0",
    "unplugin-fonts": "^1.1.0",
    "unplugin-vue-components": "^0.26.0",
    "vite": "^5.0.0",
    "vite-plugin-vuetify": "^2.0.0"
  }
}

.binではなくファイルの実体を直接指定します。

  "scripts": {
    "dev": "node --no-warnings ./node_modules/vite/bin/vite.js",
    "build": "vite build",
    "preview": "vite preview"
  },

これで解決しました。

コメント

タイトルとURLをコピーしました