Open jhajas opened 8 years ago
Tuším že jsem to dělal přes Homebrew
Vůbec netuším. Sice Mac používám, ale jen jako hezkou konzoli k Debianím serverům. :-) Popravdě lunchtimeandel vznikl na základě toho, že jsem si chtěl vyzkoušet NodeJS a Closure Library, takže ten stack není zrovna nejjednodušší.
Pro vývoj na backend straně by mělo stačit npm (a zavolat npm install) a mongodb. Pro frontend je potřeba Closure Library, což chce Javu, a submoduly (bootstrap, font awesome a tak). Bohužel ale ten commit v repu Closure Library není, takže nejde vycheckoutovat a s poslední verzí to nefunguje. To řeší @pavelsterba.
Help jsem upravil. Kdyžtak můžete přidat i druhý target pro Mac. Každopádně si pohrávám s myšlenkou lunchtimeandel zase využít pro vyzkoušení si něčeho nového, zatím to vypadá na Elm. Ale otázka, zda se to stane a kdy. Může mne popadnout chuť za týden, ale taky klidně nikdy. :-)
hmm, tak aktualne jsem zkoncil na tom, ze nevim co nainstalovat aby tam byl calcdeps.py:
$ make compile
coffee -cb ./backend ./frontend ./tests
java -jar libs/closure-templates/SoyToJsSrcCompiler.jar \
--shouldProvideRequireSoyNamespaces \
--shouldGenerateGoogMsgDefs \
--bidiGlobalDir 1 \
--outputPathFormat frontend/templates/template.js \
--srcs frontend/templates/template.soy
java -jar libs/XtbGenerator.jar \
--lang cs \
--translations_file frontend/templates/messages.xtb \
--xtb_output_file frontend/templates/messages.xtb \
--js frontend/templates/template.js
python libs/closure-library//closure/bin/calcdeps.py \
--compiler_jar libs/closure-compiler.jar \
--output_mode compiled \
--path libs/closure-library/ \
--path="libs/closure-templates/soyutils_usegoog.js" \
--path="frontend/templates/template.js" \
--input="frontend/scrolling.js" \
--input="frontend/restaurant.js" \
--input="frontend/choicehelp.js" \
--input="frontend/restaurants.js" \
--input="frontend/search.js" \
--input="frontend/api.js" \
--compiler_flags="--translations_file=frontend/templates/messages.xtb" \
--compiler_flags="--externs=frontend/externs/googlemapsv3.js" \
--compiler_flags="--warning_level=VERBOSE" \
--compiler_flags="--compilation_level=ADVANCED_OPTIMIZATIONS" \
> public/app.min.js;
python: can't open file 'libs/closure-library//closure/bin/calcdeps.py': [Errno 2] No such file or directory
make: *** [compile-javascript] Error 2
tohle jsem zatim zkousel:
install-dependencies-macos:
sudo brew install mongodb
sudo brew install node
sudo brew install node-build
curl https://www.npmjs.com/install.sh | sudo bash
npm install closure closurecompiler calcdeps
sudo npm install forever supervisor mocha -g coffee-script
calcdeps.py
patří do Closure Library. V repu to je jako submodule. Ale momentálně tam je odkaz na neexistující commit a s novým nefunguje, což začal řešit @pavelsterba.
Jestli to chapu dobre, tak dokud to @pavelsterba nevyresi, tak se v podstate neda pro lunchtimeandel nic vyvijet, protoze nejde nakonfigurovat devel environment. Chtel jsem pridat nejake nove hospody, kam chodime na obed, ale zda se ze, abych to byl schopen odladit, tak musim pockat...
Chapu to dobre?
Nope. Pouze pokud chceš něco vylepšit na front-endu. Pro přidání restaruace stačí přidat soubor do backend/lunchmenuloader a zaregistrovat v index.coffee. Front-endový JS je zkompilovaný už v Gitu, takže stačí pustit (make run) a nemusíš recompilovat všechno.
Aha, ale kdyz pustim make run, tak dostavam cyklicky tohle:
$ make run
coffee -cb ./backend ./frontend ./tests
# Make sure that nothing is running on port 3000.
if [ `lsof -i tcp:3000 | grep LISTEN | cut -d" " -f2` ]; then kill `lsof -i tcp:3000 | grep LISTEN | cut -d" " -f2`; fi
lsof: WARNING: can't stat() smbfs file system /private/tmp/mntPtnZkNdK
Output information may be incomplete.
assuming "dev=2e000013" from mount table
cd backend; supervisor lunchtime.js
Running node-supervisor with
program 'lunchtime.js'
--watch '.'
--extensions 'node,js'
--exec 'node'
Starting child process with 'node lunchtime.js'
Watching directory '/Users/ja/src/lunchtimeandel/backend' for changes.
Press rs for restarting the process.
Express server listening on port 3000
/Users/ja/src/lunchtimeandel/node_modules/mongodb/lib/server.js:242
process.nextTick(function() { throw err; })
^
Error: connect ECONNREFUSED 127.0.0.1:27017
at Object.exports._errnoException (util.js:1007:11)
at exports._exceptionWithHostPort (util.js:1030:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1080:14)
Program node lunchtime.js exited with code 1
Starting child process with 'node lunchtime.js'
Express server listening on port 3000
/Users/ja/src/lunchtimeandel/node_modules/mongodb/lib/server.js:242
process.nextTick(function() { throw err; })
tezko rict co je spatne :(
Hmm. To vypadá, že nové knihovny fungují nějak jinak. To jsem jednou už opravoval a zdá se, že jsem zapomněl napsat přesné závislosti do package.json
. A nebo to bude novější verzí nodu, u mne to běží od začátku na squeezovi, což je nějaká prapůvodní verze nodu a udělali tam taky docela pokrok.
To budu muset vážně už přepsat zase do novějšího experimentálního jazyku. :-))
O jakou restauraci se jedná, kterou chceš přidat?
Chtel jsem pridat Hromadky: http://www.nahromadkove.cz/index.php/denni-menu a pak se podivat proc nefunguje Lokal Blok a Anděl.
Ok. Ještě chvíli posečkej, brzy bude přepsané do něčeho aktuálního a jednoduchého. :-)
Koukal jsem ze v Makefile je target install-dependencies, ale ten pocita s apt-get. Nejake doporuceni pres co nainstalovat zavislosti na macOS?