MDMTをwindows環境でnpm run buildする際のエラー解消法
初めに
fandさんことamagiさんによるMDMTをWindows環境でせこせこいじっていた訳ですが、
ひと段落したタイミングでnpm run build
したところ、
'hoge' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
こんな感じのエラーがいっぱい出たので解決法をまとめます。(ある程度わかってる人ならなんとなくこの時点で察せるやつだと思うけど、、、)
問題点
結論から言うと、package.jsonにあるコマンドがwin/mac&linuxで異なることが原因です。まんまですね。なので、、、
"scripts": {
"build": "NODE_ENV=production run-s clean build:manifest build:build build:export build:nojekyll build:preload build:sw",
"build:build": "next build",
"build:export": "next export -o docs",
"build:manifest": "node scripts/generate-manifest.js",
"build:nojekyll": "touch docs/.nojekyll",
"build:preload": "node scripts/copy-preload.js",
"build:sw": "workbox generateSW scripts/workbox-config.js",
"clean": "rm -rf .next docs",
"lint": "eslint --ext .js,.ts,.tsx pages lib components scripts",
"start": "next",
"test": "NODE_ENV=production babel-node test/index.js"
}
このコードを
"scripts": {
"build": "SET NODE_ENV=production & run-s clean build:manifest build:build build:export build:nojekyll build:preload build:sw",
"build:build": "next build",
"build:export": "next export -o docs",
"build:manifest": "node scripts/generate-manifest.js",
"build:nojekyll": "copy nul docs\\.nojekyll",
"build:preload": "node scripts/copy-preload.js",
"build:sw": "workbox generateSW scripts/workbox-config.js",
"clean": "rd /s /q .next docs",
"lint": "eslint --ext .js,.ts,.tsx pages lib components scripts",
"start": "next",
"test": "NODE_ENV=production babel-node test/index.js"
}
こうすれば走ります。
具体的に何をどうしたかというと、、、
NODE_ENV
をwindowsに合わせてset
と&
をつけてあげたり、
"build": "NODE_ENV=production run-s clean build:manifest build:build build:export build:nojekyll build:preload build:sw"
"build": "SET NODE_ENV=production & run-s clean build:manifest build:build build:export build:nojekyll build:preload build:sw"
touch
はwindowsにはないので、copy nul
に変更してあげる。& /
(スラッシュ)だとパス指定できないので\
(バックスラッシュ)で対応してあげる。
"build:nojekyll": "touch docs/.nojekyll"
"build:nojekyll": "copy nul docs\\.nojekyll"
rm -rf
もwindowsにはないので、rd /s /q
で対応
"clean": "rm -rf .next docs"
"clean": "rd /s /q .next docs"
こんな感じです。参考になれば。
Author And Source
この問題について(MDMTをwindows環境でnpm run buildする際のエラー解消法), 我々は、より多くの情報をここで見つけました https://qiita.com/tato_lol/items/b879bea1bf699a5ea5ff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .