質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

2回答

1570閲覧

macでWindowsにあるbatファイルのようなものを作りたい

kihara

総合スコア40

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2021/10/31 08:12

前提・実現したいこと

非エンジニアの方にnode_modulesのインストールと画像圧縮用のgulpタスクをエディタを開かずにできる環境を用意したく、そのコマンドを実行するためのタスクを組んだbatファイルを作成しました。

しかし、Windowsはそれで問題なくてもmacでは実行できないため、macでWindowsにあるbatファイルのようなものを作りたいのですが、.commandで作ると実行側で設定が必要になってしまい不便です。

batファイルのようにファイルをダブルクリックするだけで、ターミナルのコマンドを実行する方法はないでしょうか?
もし詳しい方おりましたらご教授いただけますと幸いです。何卒よろしくお願い致します。

該当のソースコード

bat

1@echo off 2cd /d %~dp0 3rem node_modulesフォルダがない場合、npm installコマンドを実行 4if not exist node_modules\nul ( 5 call npm install 6)

bat

1@echo off 2cd /d %~dp0 3cmd /k npx gulp

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

シェルスクリプトを使いましょう。
バッチファイルに詳しくないのですが、以下のような感じでしょうか。

sh

1#/usr/bin/env sh 2 3cd $(dirname $0) 4# node_modulesフォルダがない場合、npm installコマンドを実行 5if [ ! -e 'node_modules' ]; then 6 npm install 7fi

sh

1npx gulp

なお、スクリプトファイルのパーミッションが正しく指定されていないと実行できないので、chmod +x スクリプトファイルで実行権限を付与してください。

投稿2021/10/31 11:23

fj68

総合スコア752

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Macbookに実行権限を付与したBashファイルを
Finder(Windowsでいうエクスプローラ)からダブルクリックして試しました。

普通に小窓が立ち上がって動作しますね。
Windowsのbatやps1と同じような挙動です。
これにGulpやNode.jsの起動コマンドをくっつければ良いでしょう。

batファイルと同じ階層にファイル名だけ同じで拡張子違いのファイルhoge.shを作りましょう。
開発マシンがWindowsならWSL等のLinuxマシンを導入すればMacと同じBashが入ってるので
動作を検証すれば良いです。

例えばプロジェクトルートからbinフォルダを作ってその中にbat等が入っていると仮定するとこんな感じ

bash

1# "プロジェクトルート/bin" なら一度外に出た方が良いかな? 2# というわけでこのシェルファイルのパスを取得するコードを付与 3script_dir="$(cd "$(dirname "${BASH_SOURCE:-${(%):-%N}}")"; pwd)" 4cd "$script_dir/../" 5 6# もう何も考えずに毎回`npm install`すればよくね? 7npm install 8 9npx gulp

投稿2021/11/01 05:37

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問