SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
makeのススメ
Abe Asami
2015/09/26 いまどきのフロントエンド環境構築
自己紹介
Abe Asami きの子 (フリーエンジニア)
http://nocono.net/
@aa7th
Scala、Andorid
makeって何?
• ビルドツール(元祖)
• Wikiによると1977年に登場

(https://ja.wikipedia.org/wiki/Make)
• 元々はC/C++ ビルドのためのもの
使うには?
Mac
• XCodeがはいっていればOK (GNU Make)
Linux
• Gnu Make標準装備
Windows(つらい)
• CygwinをいれればGNU Makeが使える(らしい)
• Make for Windowsというソフトがあるみたい
makeの基本
1. Mekefileにビルド手順を書く
2. Makefileをカレントディレクトリに設置
3. makeコマンド実行!
Makefile
main.o : main.c defs.h
cc -c main.c
ターゲット : 依存関係のファイル

<タブ>コマンド
ターゲットがないもしくは
依存ファイルがターゲットより新しい場合に
コマンドを実行する
all: hello
hello:
echo Hello World!!
% make
echo Hello World!!
Hello World!!
Makefile
実行結果
サンプルを書いてみました
• 発表用に作ったものなので細かいツッコミはなしでお願いします
https://gist.github.com/SAMMY7th/
9bc7305a5bbd4b8258d5
makeの嬉しいところ①
専用プラグインが必要ない。単純にコマンド実行するだけ。
• Gulpとかだとプラグインに依存しちゃう
• そもそもプラグインがないことも
• プラグインにバグがある可能性も・・・
• 前、遭遇したことがある(Gruntの頃)
• そのとき結局、Makefileに書いた
makeの嬉しいところ②
Nodeモジュール以外のコマンドも簡単に実行できる
• シェルスクリプトとか
• プロジェクトで必要なコマンドを全て集約しやすい
makeの嬉しいところ③
廃れることはまずない
• ツールの流行りに振り回されない!!!!!
• ありもののGulpfileがあるなら当然Gulp使った方がはや
い(Yoemanとか)
• シェルの知識が多少必要 (逆に言うと知識がつく)
• Gulpプラグイン探すのめんどいコマンド直接実行する方
がはやい!というときにはMakefileに書いた方が早い
• Gulpも使いつつ、GulpコマンドもMakefileに集約する
ということもできるよ
• うまく組み合わせて使うといいと思う
makeどうなん
まとめ
• Gulpなどの今時のツールに依存せず、ビルドツー
ルから直接コマンドを実行するというアプローチ
の仕方があることを知っておいて損はない
• ビルドツールの流行り廃りに振り回されるのは

嫌だ

(余談) npm run-scripts を活用するのもよさそうだと思いました

   (よく知らんけど)
ありがとうございました
参照サイト:
GNU make 日本語訳(Coop編) by @ino2222
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html

Weitere ähnliche Inhalte

Was ist angesagt?

ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
 

Was ist angesagt? (20)

JAWS Osaka July 2014, Opsworks + Node.js
JAWS Osaka July 2014, Opsworks + Node.js JAWS Osaka July 2014, Opsworks + Node.js
JAWS Osaka July 2014, Opsworks + Node.js
 
JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?JavaScriptフレームワーク入門にVue.jsはいかが?
JavaScriptフレームワーク入門にVue.jsはいかが?
 
Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +Getting Started With Ore-Ore Swift Standard Library +
Getting Started With Ore-Ore Swift Standard Library +
 
Docker for connect cms
Docker for connect cmsDocker for connect cms
Docker for connect cms
 
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
Getting Started With Ore-Ore Swift Standard Library ++ ほんのり続報
 
Grunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanakaGrunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanaka
 
Saitowotsukutsutemita
SaitowotsukutsutemitaSaitowotsukutsutemita
Saitowotsukutsutemita
 
Node.js で Web アプリ開発
Node.js で Web アプリ開発Node.js で Web アプリ開発
Node.js で Web アプリ開発
 
翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門
 
Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...
Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...
Microsoft open technologies の ross gardler さんを囲む会 改め 『microsoft open technolo...
 
MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...
MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...
MS open technologies の ross gardler さんを囲む会 改め 『MS open technologies に必ず伝えてほしい...
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
Nuxt
NuxtNuxt
Nuxt
 
20220208 さくらレンサバにlaravelをインストール
20220208 さくらレンサバにlaravelをインストール20220208 さくらレンサバにlaravelをインストール
20220208 さくらレンサバにlaravelをインストール
 
WebComponentsとPolymer
WebComponentsとPolymerWebComponentsとPolymer
WebComponentsとPolymer
 
Nodeにしましょう
NodeにしましょうNodeにしましょう
Nodeにしましょう
 
Riot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディングRiot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディング
 
JavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamuraiJavaScript TDD紹介 #agilesamurai
JavaScript TDD紹介 #agilesamurai
 
Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28Jenkins study 7 2013-01-28
Jenkins study 7 2013-01-28
 
Vue
VueVue
Vue
 

Andere mochten auch

アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカー
Yasuyuki Fujikawa
 
因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ
toshihiro ichitani
 
The Romani Music-Final_Sanchez
The Romani Music-Final_SanchezThe Romani Music-Final_Sanchez
The Romani Music-Final_Sanchez
mickey2s
 

Andere mochten auch (20)

Scala.js触ってみた
Scala.js触ってみたScala.js触ってみた
Scala.js触ってみた
 
ScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったでScalaでBacklogの通知bot作ったで
ScalaでBacklogの通知bot作ったで
 
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
【ScalaMatsuri2016】関西のScalaコミュニティ紹介【ScalaMatsuri2016】関西のScalaコミュニティ紹介
【ScalaMatsuri2016】関西のScalaコミュニティ紹介
 
関西Java女子部とScala関西勉強会のご紹介
関西Java女子部とScala関西勉強会のご紹介関西Java女子部とScala関西勉強会のご紹介
関西Java女子部とScala関西勉強会のご紹介
 
2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門2015/11/15 Javaでwebアプリケーション入門
2015/11/15 Javaでwebアプリケーション入門
 
アジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカーアジャイルプラクティス_プラニングポーカー
アジャイルプラクティス_プラニングポーカー
 
Earned value management
Earned value managementEarned value management
Earned value management
 
育てる!かんばん - bring up Kanban.
育てる!かんばん - bring up Kanban.育てる!かんばん - bring up Kanban.
育てる!かんばん - bring up Kanban.
 
因果関係図で問題の根本原因を突き止めよう
因果関係図で問題の根本原因を突き止めよう因果関係図で問題の根本原因を突き止めよう
因果関係図で問題の根本原因を突き止めよう
 
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
第44回勉強会「なぜなぜ分析でスッキリ!問題解決ワークショップ」資料
 
Javaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツJavaプログラミングをスッキリ学ぶ10のコツ
Javaプログラミングをスッキリ学ぶ10のコツ
 
因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ因果関係図で現場課題を捉えようワークショップ
因果関係図で現場課題を捉えようワークショップ
 
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くするGulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
 
White Paper Options For Handling Your HR Function
White Paper  Options For Handling Your HR FunctionWhite Paper  Options For Handling Your HR Function
White Paper Options For Handling Your HR Function
 
Nahdet El Mahrousa's Incubator Information session
Nahdet El Mahrousa's Incubator Information session Nahdet El Mahrousa's Incubator Information session
Nahdet El Mahrousa's Incubator Information session
 
慶應義塾大学 教育学特殊 第11講(2016年67月6日)
慶應義塾大学 教育学特殊 第11講(2016年67月6日) 慶應義塾大学 教育学特殊 第11講(2016年67月6日)
慶應義塾大学 教育学特殊 第11講(2016年67月6日)
 
SWA Presentation
SWA PresentationSWA Presentation
SWA Presentation
 
The Romani Music-Final_Sanchez
The Romani Music-Final_SanchezThe Romani Music-Final_Sanchez
The Romani Music-Final_Sanchez
 
NV_path_rendering
NV_path_renderingNV_path_rendering
NV_path_rendering
 
151202 教育評価論(三田)第9講
151202 教育評価論(三田)第9講151202 教育評価論(三田)第9講
151202 教育評価論(三田)第9講
 

Ähnlich wie makeのススメ

継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david9142
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
masayoshi takahashi
 

Ähnlich wie makeのススメ (20)

Cross Platform Make
Cross Platform MakeCross Platform Make
Cross Platform Make
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFrameworkTrue Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
 
Inside of swift
Inside of swiftInside of swift
Inside of swift
 
The seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurugThe seminar of asp.net at 201908 sakurug
The seminar of asp.net at 201908 sakurug
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
ソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルドソフトウェア工学2023 14 ビルド
ソフトウェア工学2023 14 ビルド
 
CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-tool
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -OWIN - .NETにおけるPSGI -
OWIN - .NETにおけるPSGI -
 
Node.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたことNode.jsアプリの開発をモダン化するために取り組んできたこと
Node.jsアプリの開発をモダン化するために取り組んできたこと
 
達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)達人出版会のご紹介(技術編)
達人出版会のご紹介(技術編)
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 

Mehr von Asami Abe

フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4
Asami Abe
 
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kbSkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
Asami Abe
 

Mehr von Asami Abe (10)

Scala超入門 - 2014/12/13 Scala関西勉強会
Scala超入門 - 2014/12/13 Scala関西勉強会Scala超入門 - 2014/12/13 Scala関西勉強会
Scala超入門 - 2014/12/13 Scala関西勉強会
 
フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4フリーランスエンジニアになって1年が経ちました - 俺聞け4
フリーランスエンジニアになって1年が経ちました - 俺聞け4
 
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kbSkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
SkinnyFrameworkやろうぜ!(+ScalaMatsuriレポート) #scala_kb
 
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
Introduction of Scala Kansai Beginners (ScalaMatsuri2014LT)
 
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
 
Play2+Scala事始め
Play2+Scala事始めPlay2+Scala事始め
Play2+Scala事始め
 
【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script【俺聞け5】私とflashとhtml5&java script
【俺聞け5】私とflashとhtml5&java script
 
20121222 scalaビギナーズ
20121222 scalaビギナーズ20121222 scalaビギナーズ
20121222 scalaビギナーズ
 
Scalaはじめました!
Scalaはじめました!Scalaはじめました!
Scalaはじめました!
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

makeのススメ