Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WSLでreactの開発環境作った話
Search
S-cubism
September 26, 2018
Technology
0
610
WSLでreactの開発環境作った話
S-cubism
September 26, 2018
Tweet
Share
More Decks by S-cubism
See All by S-cubism
未経験者がAndroidアプリをリリースするまで
scubism
0
85
scubism_LT_20180223_細田謙二_イベントソーシング
scubism
0
130
REVEAL.JSをちょっとだけ使ってみた
scubism
0
240
忙しい人のための仮想通貨
scubism
0
81
サーバ作業の注意コマンド
scubism
0
93
最近勉強してること、次にやりたいこと
scubism
0
82
FOOD TECH
scubism
0
45
Firebase(Realtime Database)について
scubism
0
100
複数会社複数リポジトリでのソース管理
scubism
0
80
Other Decks in Technology
See All in Technology
SPI原点回帰論:事業課題とFour Keysの結節点を見出す実践的ソフトウェアプロセス改善 / DevOpsDays Tokyo 2024
visional_engineering_and_design
4
1.9k
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
320
Terraformあれやこれ/terraform-this-and-that
emiki
8
1.4k
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
190
ゼロから始めるVue.jsコミュニティ貢献 / first-vuejs-community-contribution-link-and-motivation
lmi
1
120
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
0
170
VS CodeでAWSを操作しよう
smt7174
7
1.6k
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
27
5.9k
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
110
On Your Data を超えていく!
hirotomotaguchi
2
660
NgRx Signal Store
rainerhahnekamp
0
150
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
28
6.3k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Bash Introduction
62gerente
604
210k
Designing with Data
zakiwarfel
96
4.8k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Adopting Sorbet at Scale
ufuk
68
8.6k
Optimizing for Happiness
mojombo
370
69k
Into the Great Unknown - MozCon
thekraken
10
990
Done Done
chrislema
178
15k
Debugging Ruby Performance
tmm1
70
11k
Product Roadmaps are Hard
iamctodd
44
9.7k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Transcript
WSLで reactの開発環境作った話 テクノロジーアーキテクト本部 松島一樹
Windowsでのreact開発環境について
React開発方法 • 仮想マシンを立てる(virtualbox) • Vagrant+ansibleで簡単に作成できる • シンボリックリンクがあるため共有フォルダが使えない (ホストのエディタから編集できない) • NodeをWindowsに入れる
• 無難そう • Windows Subsystem for Linuxを使う
WSLを使った理由 • Linuxのほうが使い慣れていた • Nodeのバージョン管理ツール(nvm)が使える • Windowsと相互運用しやすそう
Windows Subsystem for Linux ざっくり入門
WSLとは • Windows Subsystem for Linux(通称WSL) • Linux ELF64バイナリの実行環境
仕組み ユーザモード カーネルモード Linux syscall 変換を行う NT syscall [1]画像出典 WSL
System Calls (https://blogs.msdn.microsoft.com/wsl/2016/06/08/wsl-system-calls/)
WSL機能概要 • バックグラウンドプロセスの実行(一部) • 仮想的なLinuxのファイルシステム • ネットワーク通信 • シリアル通信のサポート
ファイルシステム • VolFs • VFSのほとんどの機能をサポート • “/”以下が格納 • Windowsのアプリケーションから触れない(ほうがいい) •
DrvFS • Windowsのファイルと相互運用 • Linuxのアクセス権限は利用できない ver1803からできるようになった • I/Oが遅いといわれている[1] [1] Microsoft、WSLのI/Oパフォーマンス改善に取り組み https://news.mynavi.jp/article/20180815-676572/
対応するディストリビューション など
つかいかた
bash起動方法 • アプリストアのアイコンをクリックする • “ファイル名を指定して実行”で”wsl”
特定のコマンドを実行する • コマンドプロンプトで • Powershellで • Explorerで コマンド 引数
React開発環境
環境構成 React project /mnt/c/Users/user/project/ C:¥Users¥user¥project Visual Studio code 編集 WSL
Ubuntu 18.04 Node 8.11.4 実行 node起動 Debugスクリプトでwslのフラグを立 てるとwslでnodeを起動してくれる ブラウザ localhost:3000 • nodeの実行はwsl上で • プロジェクトのファイルはDrvfsに置く
よかった点 • Linuxでの構築方法を流用できる • エディタ(vscode)から制御できる • ネットワークの設定が不要
悪かった点 • 仮想マシンと比べてビルドが遅い 参考: WSL vs VM for 開発作業(https://qiita.com/satoru_takeuchi/items/a54812806bba0eb48f02) •
コマンドを誤るとwindowsの動作にも影響が出てしまう • 通称fork爆弾.windowsがフリーズする • userのフォルダも削除される? 参考:Windows 10 WSLで『rm -rf /』を実行(https://news.mynavi.jp/article/dont_run_on_linux-3/) $ :(){ :|:& };: $ sudo rm –rf / --no-preserve-root
まとめ Linuxのバイナリを実行できる 動作は遅い 動作確認にはよさそう