Node.jsプラットフォームでのWeb開発に興味があります。私のホストOSはWindows 7です。開発環境をセットアップするのに望ましい方法は何でしょうか。ホストで直接実行するか、Linuxベースの仮想マシンで実行しますか?これら2つの方法の長所と短所は何ですか?
VMを使用する場合、WindowsでテキストエディターとWebブラウザーを実行できますか(パフォーマンス上の理由から)。
設定ファイルを使用するだけのシステムがあり、パスの違い("c:\blarg"
vs "~user/blarg"
)そして、ボーナスとして、デバッグ環境と実稼働環境の違いを制御できます。
Node.jsはクロスプラットフォームなので、開発者はあらゆる種類のコンピューターで作業しているため、まったく問題はありません。
これは、ファイルストレージプロジェクトで使用する構成ファイルの例です。
/**
* All of these are mandatory except for log_level (which defaults to "info", 1)
* and log_echo_to_console (which defaults to false)
*/
exports.config = {
log_level: 0,
log_file: "/path/to/send.log",
request_log_file: "/path/to/send_requests.log",
log_echo_to_console: true,
port_number: 8088,
no_notification_emails: true,
image_url_base: "http://s3.amazonaws.com/", // MAKE SURE THIS ENDS IN "/"
tmp_file_folder:"/tmp/",
s3_info: {
key: 'xxxxxx',
secret: 'yyyyy',
file_bucket: 'sendtransfer/',
},
backend_info: {
db_info: {
server: "localhost",
user: "db_user",
password: "secret",
database: "SendRemote",
pooled_connections: 125,
idle_timeout_millis: 30000
},
memcache_info: {
Host: "127.0.0.1",
port: "31111",
pooled_connections: 200,
timeout: 20000
}
},
debug_server: true
};
Windowsマシンの場合、パスを変更するだけです。大丈夫だよー!
次に、コードで次のように入力します。
var local = require('local.config.js');
fs.writeFile(local.config.log_file);
// etc
多文化主義を受け入れる!!!
ええ、経験から Linux Docker。
editDockerを使用します。依存関係をベイク処理し、実行時にプロジェクトをマウントし、LTSノードの特定のバージョンのみに固定します。実行不可能なプロジェクトで2GBのdockerイメージを使用して、新しいパッケージへのアップグレードを余儀なくされた日をもたらしました。 -2018/04/10
しかし、Linuxベースの環境での開発に8年を費やし、Windowsドットネット環境でnodejsを使用したソフトウェアの開発に6か月を費やした人から、衝撃やその他の私の発見があります...
debians build-essentials
に相当するウィンドウは、実際には、特定のインストールシーケンスを必要とする、インターネット上に散らばるGUIのみのインストーラーという、ばらばらに広がる悪名高いコレクションです。これは、Sudo apt-get install build-essentials
と比較して非常に時間がかかり、隠れた落とし穴がたくさんあります。
windowsで開発すると、大文字と小文字が混在するパス名の悪い習慣が可能になりますが、チームが従う/強制する厳格なポリシーを持たない限り、これは後の問題への滑りやすい傾斜になります。
windowsはパスで256文字以上をサポートしていますが、重要なツールはサポートしていません。左のステージに入ります:リムラフとロボコピー...うーん。
windowsターミナルは吸い込みます...デフォルトのシェルも同様です:cmd.exe ... Powershellは構文が非常に冗長であり、私の好みではありません... (笑)。 Cmderは、よりモジュール化されたシェル(zsh、bashなど)で非常によく機能します。。 update:pshazzとscoopでpowershellを使用するようになりました。
シェルとターミナルの状況をさらに改善しても、windowsのnodejsは、環境変数が%OF%%THE%%WINDOWS%%VARIETY%...であると想定しますが、$ UNIX $ STYLEではありません。したがって、基本的にはcmd.exeからbowerとnpmを使用することになります。 cross-env
と司令官またはyargsの組み合わせを組み込んだため、この問題はもう発生していないようです。
また、chocoが存在し、そこに戻ってくるため、Windowsの場合はpythonをインストールしてください。問題ありません。)update:をご覧ください。 boxstarterは、レシピを使用して新しいマシンのセットアップを自動化するのに役立ちます(または、実際にansibleまたはsaltを使用して卒業することもできます)。
経験豊富なpython、Ruby開発者は、古いプロジェクトは、それらを再訪する必要があるときにエンジンのサイロ化されたバージョンが必要であることを教えてくれます:ウサギの穴)、rvmやvirtualenvのようなものが欲しいでしょう...
nvm(unixシステムlinuxおよびmacosxでのみ動作します)は、bashスクリプトのコレクションであるためです。 ZSHをZgenおよびTarrasch/zsh-autoenv
プラグインと共にシェルとして使用することをお勧めします。
nodist
を使用することをお勧めします。バーの方がはるかに優れた選択肢です。nodistがこれを処理するので、何らかのautoenvについて心配する必要はありません。choco install cmder nodejs python2
choco install python2
http://scoop.sh
をインストールし、それを使用してpshazzをインストールします。tldr; nvmを使用します。以下以外の理由で。
~/.local/share/npm
の使用を開始しました)。嬉しいことに、これはnodejsのWindowsインストールが正しくなっていることを発見したものです(おそらく意図的ではないでしょう)。node
というバイナリが既に存在するため、#!/usr/bin/env node
はデフォルトでnodejsを実行しません。幸運なことに、debianシステムにはenv
バイナリが放出するものを制御するためのきちんとした管理ツールがあります:update-alternatives
。ここでシンボリックリンクを使用するための提案を無視してください。これは後で微妙な方法で問題を引き起こすだけです。$ Sudo apt-get install git-core git-flow build-essentials python-dev python- pip
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
$ npm config set prefix ~/.local/share/npm
$ nvm install stable
$ nvm alias default stable
参照:
また、Windows 7を使用しており、Linux(debian)ゲストでVirtualboxを使用しています。コマンドラインでいくつかの作業を行った後、Windowsで[arround]をクリックする方が速いため、それをお勧めします。
もう1つの便利な機能は、USBスティックにVMを置くと、それを持ち運び、Virtualboxホストがインストールされているすべての場所で使用できるため、開発環境全体を持ち歩くことができることです。 。
Windowsでお気に入りのテキストエディタまたはブラウザを使用して、sambaをインストールし、ホームディレクトリをWindowsにマウントするだけで問題ありません。 VMはLAN内の単なる別のマシンであり、ブラウザをlocalhostでVM Ipにポイントするのではなく、問題ありません。
ここで明らかな欠点は、Linuxの経験がまったくない場合でも、Windowsに固執する必要があることです。
ちょうど私の2セントは多分さらに少ない:
3番目のオプションをお勧めします:windows/ubuntuセットアップをダブルインストールし(できれば bunt distが最も使いやすいgui) UNIX、さらにはiOSでさえも、Windowsをよりよく理解し、より優れたプログラマーを理解できるようになります。 Linuxはリソースに対して非常に効率的ですが、仮想ボックスが遅すぎる場合があります。
仮想マシンをインストールできる場合は、 linuxディストリビューション をインストールして、多くのWebが構築されているOSのこの言語/システムに慣れることもできます。
Git bashを使用して、windowsでnode.jsをコーディングするのは本当に楽しいです。 http://blog.nodester.com/post/19902515151/tips-for-windows-users
VirtualBoxを実行するよりも速く、簡単に思えます。実稼働に移行する前に、テストにVirtual Boxを使用していることを考えます。