A scalable framework for AngularJS running off RequireJS.
Visit radian.io for more info.
A scalable AngularJS framework
Home Page: http://radian.io
License: MIT License
A scalable framework for AngularJS running off RequireJS.
Visit radian.io for more info.
I'm sure you're aware of this but it doesn't seem to be mentioned on the site.
Some but probably not all of the things that are broken:
@import 'icon/*.png'
the folder and png
files don't exist, causes compass:dev to abort (styles.sass
)@import 'partial/mixins'
etc.., none of the partials exist, causes compass:dev to abort (_partials.sass
)app-controller.coffee
has references to header-controller
, footer-controller
and page-title-factory
, all of which don't exist. This creates the error Unknown provider: pageTitleFactoryProvider <- pageTitleFactory
routes.coffee
has references to error-controller
and home-controller
which don't existAlso when files aren't found they don't raise 404's they just return the index.html file instead. Perhaps if the path has a .js/.css/.jpg/.png/.gif extension then the server should return a 404 instead of the index.html file
I love Radian, it seems to very closely replicate what I have been trying to do with Angular and Yeoman myself, except Radian is a lot cleaner and more clearly thought-out.
One thing I feel is missing from Radian is minification/combining of partials for the production version of the app. Perhaps take a look at grunt-angular-templates. I tend to use a lot of small partials and making multiple requests for a few small partials makes app significantly slower on production. You can also transparently fallback to using .html
files (perhaps for the development version) and continue to use the same path.
Any thoughts about the idea of providing a base CoffeeScript class that can be extended to hide some of the cruft (e.g. specifying injectables twice and binding class methods) associated with using CS classes instead of functions.
Perhaps something like this? https://gist.github.com/elado/8138516
There's an optional target
attribute that the menu data can pass
I am on OSX Mavericks 10.9.3 and have followed the instructions on your homepage for installing Radian as well as Yeoman. All is fine here.
Now when I want to create an app with the "yo radian" command I get the following two errors:
./util/has_cairo_freetype.sh: line 4: pkg-config: command not found
gyp: Call to './util/has_cairo_freetype.sh' returned exit status 0. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:340:16)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 13.2.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/xxx/Documents/dev/radian/node_modules/grunt-spritesmith/node_modules/spritesmith/node_modules/canvassmith/node_modules/canvas
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.13.0
gyp ERR! not ok
and at the end I get:
npm ERR! peerinvalid The package karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9.3
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@~0.10.0
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.11.14
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/xxx/Documents/dev/radian
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.10
npm ERR! code EPEERINVALID
Have you got any advice on how to fix these issues or references I could read through that would help me solve the problem? I have looked around on Google but haven't found any solutions that have solved anything for me. Such solutions included updating Karma to the latest version but that also ups the version of grunt-karma that is needed and all other dependencies listed didn't seem to get solved by this.
Any help at all would be great as I am really anxious to give Radian a try.
Using the selenium server at ahmednuaman-radian:06dd4e07-0f52-4fdf-be5e-389f2117bbf5@localhost:4445
When I run grunt build
everything runs file until it gets to the crawler and outputs "Indexed http://localhost:8000/ and saved to build/index.html
". Basically the crawled index.html
replaces the original index.html
.
This means that I can not access the built JS version of the site, I am presuming that this is not the expected behaviour.
If you are using SCSS, a semi-colon is not added in _partials.scss for the import of the SCSS file relating to the partial you just added
This is a feature request. I realise that Radian can't be everything to everybody but I think it's good to move away from the ruby dependencies where possible.
I've been using grunt-sass for a number of months now and I find it very stable, the only issue is that grunt-sass (and libsass) doesn't work with ruby libs like compass. I use bourbon instead and find it excellent. I also prefer scss to sass but that's very much a personal preference.
Having more than one module has become more difficult because the helper base classes are coupled to the module that is defined in the config file.
I'm not sure how I feel about this, I have only ever used one module in the past so I don't think it will effect me but I think it's worth raising the issue because 'scalable' applications could legitimately be broken down into multiple modules.
If this is considered an issue then there are two potential solutions that I can think of.
@register
method.yo radian:module 'module name'
creates a ModuleNameCtrl/ModuleNameService/etc base class.Again, I'm not sure that this is an issue that needs to be fixed but I think it's worth considering.
I think I understand why you haven't included live reload. It can be very frustrating when you save a file without thinking and the app reloads causing the application state to be lost.
It is super useful for SASS though because it can update CSS without refreshing the browser and keeping the browser state in tact. What do you think about the idea of including Live Reload for CSS files only?
NPM install not finishing and showing following error. I have karma 0.10.9 installed globally.
npm ERR! peerinvalid The package karma does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9.3
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@~0.10.0
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.11.14
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! peerinvalid Peer [email protected] wants karma@>=0.9
npm ERR! System Darwin 13.1.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "karma"
npm ERR! cwd /Users/jca27/Dev/sq-web-v2
npm ERR! node -v v0.10.24
npm ERR! npm -v 1.3.21
npm ERR! code EPEERINVALID
The watch steps should only apply to the edited file(s) not to every single file.
>> File "assets/js/routes.coffee" changed.
Running "coffeelint:all" (coffeelint) task
>> 23 files lint free.
Running "coffee:dev" (coffee) task
File assets/js/app.js created.
File assets/js/app.js.map created.
File assets/js/config.js created.
File assets/js/config.js.map created.
File assets/js/controller/app-controller.js created.
File assets/js/app-controller.js.map created.
File assets/js/routes.js created.
File assets/js/routes.js.map created.
File assets/js/startup.js created.
File assets/js/startup.js.map created.
Running "docco:all" (docco) task
docco: Gruntfile.coffee -> docs/Gruntfile.html
docco: assets/js/app.coffee -> docs/app.html
docco: assets/js/config.coffee -> docs/config.html
docco: assets/js/controller/app-controller.coffee -> docs/app-controller.html
docco: assets/js/routes.coffee -> docs/routes.html
docco: assets/js/startup.coffee -> docs/startup.html
docco: crawler.coffee -> docs/crawler.html
docco: grunt/coffeelint.coffee -> docs/coffeelint.html
docco: grunt/contrib-coffee.coffee -> docs/contrib-coffee.html
docco: grunt/contrib-compass.coffee -> docs/contrib-compass.html
docco: grunt/contrib-copy.coffee -> docs/contrib-copy.html
docco: grunt/contrib-imagemin.coffee -> docs/contrib-imagemin.html
docco: grunt/contrib-requirejs.coffee -> docs/contrib-requirejs.html
docco: grunt/contrib-watch.coffee -> docs/contrib-watch.html
docco: grunt/docco.coffee -> docs/docco.html
docco: grunt/exec.coffee -> docs/exec.html
docco: grunt/express-server.coffee -> docs/express-server.html
docco: grunt/jade.coffee -> docs/jade.html
docco: grunt/karma.coffee -> docs/karma.html
docco: grunt/text-replace.coffee -> docs/text-replace.html
docco: server.coffee -> docs/server.html
docco: test/unit/karma.conf.coffee -> docs/karma.conf.html
docco: test/unit/test-main.coffee -> docs/test-main.html
Completed in 4.960s at Sun Dec 29 2013 22:34:00 GMT+0000 (GMT)
You can read about how to do this here: https://github.com/gruntjs/grunt-contrib-watch#compiling-files-as-needed
Also I think it's worth considering moving docco
out of watch
because it's not really necessary for development.
The newest release tag is 1.0.3
without the leading v
. The generator is terminated by the bad url when requesting the tar file.
Running grunt test
doesn't fully complete when running locally because selenium hasn't been set up:
Running "exec:e2e" (exec) task
Starting selenium standalone server...
>>
>> /usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:187
>> throw new Error('Unable to start selenium. ' +
>> ^
>> Error: Unable to start selenium. You must specify either a seleniumAddress, seleniumServerJar, or saucelabs account, or use webdriver-manager.
>> at setUpSelenium (/usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:187:15)
>> at Object.runOnce (/usr/local/share/npm/lib/node_modules/protractor/lib/runner.js:397:10)
>> at Object.<anonymous> (/usr/local/share/npm/lib/node_modules/protractor/lib/cli.js:102:8)
>> at Module._compile (module.js:456:26)
>> at Object.Module._extensions..js (module.js:474:10)
>> at Module.load (module.js:356:32)
>> at Function.Module._load (module.js:312:12)
>> at Function.Module.runMain (module.js:497:10)
>> at startup (node.js:119:16)
>> at node.js:901:3
>> Exited with code: 8.
Warning: Task "exec:e2e" failed. Use --force to continue.
Not sure the solution to this - docs, extra config or both?
As it happens, your opinions closely match mine, coffeescript + sass (although I prefer the scss syntax) + jade. Obviously not everybody is going to agree with us though.
Is it in your plans to support other preprocessors? Stylus + nib is a viable alternative to compass for example. Also some people will want to work with vanilla js or css or html.
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.