jacqueslareau / perl-dancer-angular-seed Goto Github PK
View Code? Open in Web Editor NEWA seed for new projects that uses Perl Dancer on the back end and Angular on the front end.
License: MIT License
A seed for new projects that uses Perl Dancer on the back end and Angular on the front end.
License: MIT License
plenv seems easier
Maybe we could create a Yeoman generator for this project for easier installation.
Write a basic schema to use
Be clear on what package is needed
hi Jacques,
I just setup the clone following the README, the default Dancer1 is ok. But I want to use Dancer2, then I change the bin/app.pl and lib/MyApp.pm to use Dancer2. and meanwhile I change the cpanfile to require Dancer2.
when I run ' bin/start-dev.pl' , I got nothing from browser, and some error occured at console:
localhost:MyApp binjoy$ bin/start-dev.pl
2014/05/25-17:07:47 Starman::Server (type Net::Server::PreFork) starting! pid(36507)
Resolved [*]:5555 to [::]:5555, IPv6
Not including resolved host [0.0.0.0] IPv4 because it should be handled by [::] IPv6
Binding to TCP port 5555 on host :: with IPv6
Setting gid to "20 20 20 12 61 79 80 81 98 33 100 204 398 399"
Starman: Accepting connections at http://*:5555/
[MyApp:36513] core @2014-05-25 17:07:53> looking for get / in (eval 149) l. 2
[MyApp:36513] core @2014-05-25 17:07:53> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
[MyApp:36513] core @2014-05-25 17:07:53> Entering hook core.app.after_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 99
::1 - - [25/May/2014:17:07:53 +0800] "GET / HTTP/1.1" 200 1242 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
[MyApp:36515] core @2014-05-25 17:07:54> looking for get /css/build/style.min.css in (eval 149) l. 2
[MyApp:36514] core @2014-05-25 17:07:54> looking for get /app/build/app.min.js in (eval 149) l. 2
[MyApp:36515] core @2014-05-25 17:07:54> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
[MyApp:36514] core @2014-05-25 17:07:54> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
[file_not_found:36515] core @2014-05-25 17:07:54> Entering hook core.error.init in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 179
[file_not_found:36514] core @2014-05-25 17:07:54> Entering hook core.error.init in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 179
[file_not_found:36515] core @2014-05-25 17:07:54> Entering hook core.error.before in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 257
[file_not_found:36514] core @2014-05-25 17:07:54> Entering hook core.error.before in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 257
[file_not_found:36514] core @2014-05-25 17:07:54> Entering hook core.error.after in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 268
[file_not_found:36515] core @2014-05-25 17:07:54> Entering hook core.error.after in /Library/Perl/5.16/Dancer2/Core/Error.pm l. 268
::1 - - [25/May/2014:17:07:54 +0800] "GET /app/build/app.min.js HTTP/1.1" 404 499 "http://localhost:5555/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
::1 - - [25/May/2014:17:07:54 +0800] "GET /css/build/style.min.css HTTP/1.1" 404 499 "http://localhost:5555/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
[MyApp:36516] core @2014-05-25 17:07:56> looking for get / in (eval 149) l. 2
[MyApp:36516] core @2014-05-25 17:07:56> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
[MyApp:36516] core @2014-05-25 17:07:56> Entering hook core.app.after_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 99
::1 - - [25/May/2014:17:07:56 +0800] "GET / HTTP/1.1" 200 1242 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
[MyApp:36517] core @2014-05-25 17:07:56> looking for get /css/build/style.min.css in (eval 149) l. 2
[MyApp:36517] core @2014-05-25 17:07:56> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
[MyApp:36518] core @2014-05-25 17:07:56> looking for get /app/build/app.min.js in (eval 149) l. 2
[MyApp:36518] core @2014-05-25 17:07:56> Entering hook core.app.before_request in /Library/Perl/5.16/Dancer2/Core/Dispatcher.pm l. 113
could you give me some helping on it?
thanks!
The seed can be used without node. But if you have node installed, the seed is pre-configure to dowload front end packages with bower and deployment with grunt.
This is the error I got when starting up the server.
andy@LINUXAWCM:~/Projects/Perl/yammer-alerts$ bin/start-dev.pl
Unknown option: l
Unknown option: p
Unknown option: e
Unknown option: a
Can't locate Plack/Runner.pm in @inc (@inc contains: local/lib/perl5 . /usr/share/perl/5.14 /usr/lib/perl/5.14) at /usr/local/bin/plackup line 6.
BEGIN failed--compilation aborted at /usr/local/bin/plackup line 6.
At first, I thought it was to do with the module Plack so I ran cpanm Module::Plack. But that didn't help much. So I'm stuck with it from running the web server.
Any ideas what I need to do next to troubleshoot further??
After running grunt to build the production version, I bumped into a yml parsing error:
C:\Users\fielstem\Apps\PerlDancerSeed\bin>perl app.pl --environment production
Unable to parse the configuration file:
C:\Users\fielstem\Apps\PerlDancerSeed\environments\production.yml:
YAML Error: Stream does not end with newline character
Code: YAML_PARSE_ERR_NO_FINAL_NEWLINE
Line: 0
Document: 0
at C:/Dwimperl/perl/vendor/lib/YAML/Loader.pm line 38
at C:/Dwimperl/perl/site/lib/Dancer/Config.pm line 205
Adding a newline to the end of the file is needed. After do so,
c:\Users\vhatvhfielse\Apps\PerlDancerSeed>git diff
diff --git a/environments/production.yml b/environments/production.yml
index d9dbb0c..9490460 100644
--- a/environments/production.yml
+++ b/environments/production.yml
@@ -59,4 +59,4 @@ plugins:
# pass: 'myapppassword'
# options:
# RaiseError: 1
-# PrintError: 1
\ No newline at end of file
+# PrintError: 1
Runs fine now. Again, being a newbie I don't yet know how to submit a pull request, so I'm simply noting the issue and its fix here.
Loving this project!
Add my init.rc script to run the perl dancer app as a service. Add the apache configuration (as a proxy).
Should I put those in config.yml?
Hi Jacques - I'm using perl-dancer-angular-seed on Windows with SQL Server. In enabling session management, I learned that Dancer::Session::DBI supports MySQL and SQLlite only. May I suggest you add a short parenthetical note to the development.yml and the production.yml to alert session users to the session dependency. Might save them some time :) Consider this brief change:
# session storage using DBI
to
# session storage using DBI (compatible with MySQL and SQLite only)
Thanks so very much for this perl/angular/seed project!
I started building an integrated perl backend/angular frontend, and spent some time struggling with it before Googling and finding your project. I cloned the project onto my Win 7 box and installed all dependencies, which went without a hitch.
I then simply started Dancer using its standalone web server directly from the bin\app.pl file rather than using bin/start-dev.pl since Starman does not support Win32. And the angular app started up - and I'm ready to go. Excellent idea and implementation!
One more thing. I'm a github newbie (perl and angularjs too :) ), and so I don't yet know how to submit a pull request. I simply want to bring to your attention a little typo that causes a small startup bug. In the main.tt template, I believe you just need to change 'styles' to 'style' for style.css to load:
[% IF settings.dev %]
<link href="/css/styles.css" rel="stylesheet">
I'd love to help with this project, but as a newb I'm not sure I can be of much help ...
need to find out what are the most popular Dancer plugins so we can add templates in config.yml
No need to maintain 2 branches. Merge them and document what needs to be changed.
Authentification check in a before hook.
REST API to be consumed by AngularJS Resource.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.