Meteor 1.3 angular meteor project with npm and bower - meteor

tl;dr: how looks the workflow of using npm and bower inside meteor 1.3?
In my project ( meteor + angularjs 1) i use bower for several packages, like ngDraggable. Now i want to upgrade my project to meteor 1.3 and use npm + native bower from npm in my project. As the angular-meteor depends on babel package, the babel package tries to compile all files in bower_components. So i thought, that i might be on false path. Is there any defined workflow using bower within meteor 1.3?

The workflow is using npm and ignoring bower

Related

Import jquery npm package in meteor client app

I try to import the jquery npm package (it is already installed on the project) instead of the atmospherejs package but I would like to import it in the whole client part. I use the btws:bootstrap which needs jquery (with many others).
How can I manage to do that ?
I suggest you use both Bootstrap and jQuery from npm.
Do this:
$ meteor remove twbs:boostrap
$ meteor npm install --save bootstrap
$ meteor remove jquery
$ meteor npm install --save jquery

Meteor 1.3 node build: doesn't work anymore with React

With 1.2.*, I used to build my staging/production bundles with meteor build, then moving into ./bundle/programs/server and npm install there.
I do the same thing with 1.3 version but now I have error message on trying to run bundle main file with node:
WARNING: npm peer requirements not installed:
- react#0.14.x not installed.
- react-addons-pure-render-mixin#0.14.x not installed.
Read more about installing npm peer dependencies:
http://guide.meteor.com/using-packages.html#peer-npm-dependencies
/var/www/builds/1459320997/bundle/programs/server/node_modules/fibers/future.js:267
throw(ex);
^
Error: Can't find npm module 'react'. Did you forget to call 'Npm.depends' in package.js within the 'modules-runtime' package?
I use react-meteor-data meteor package.
However, I already have "react": "^0.14.8", and "react-addons-linked-state-mixin": "^0.14.8", in my package.json and of course installed it with npm install ... --save and it is working fine on development environment when I use meteor command.
Any additional actions needed to run it? Did they change how meteor package should be build for production and didn't changed their docs? (because I don't see any changes in docs concerning meteor build so far.
Update: I tried to manually npm install these packages into ./bundle/program/server. Now they consequentially requires packages already listed in my package.json. I suppose Meteor just ignore this file on bundle. Will try to add a bug in their tracker.
I used Meteor 1.2 to build new 1.3 code so it is the issue. It happened because currently I build on the server that had another Meteor version.
I used answer from another Stackoverflow user (Ian) Updating all Meteor packages to latest versions
Easiest way is to delete the contents of .meteor/versions and then save

Is there a way to install animate.css via Bower/Homebrew/etc?

I've finally started developing locally and have installed Roots.io for WP builds. Bower, gulp, node, it's all great. I've used Bower to install wow.js and it's there, but the dependency is animate.css. Is there a way to install animate.css via Bower/Homebrew/etc?
On the animate.css Github I don't see a simple way to include it in the Roots build. I've tried to manually include in which hasn't worked either, hence looking for the ideal/clean solution to the problem.
Thank you!
When installing dependancies via bower (or any package manager really) that project should include a manifest (bower.json) that lists it's own dependancies. E.g. The bower.json in wow.js should include a reference to animate.css. However if it does not you can include it as any other dependancy:
bower install animate-css --save
Then run you build process again. In this case:
gulp

Can/should Grunt be used with Bower without Npm?

I am a little confused about the use of Npm, Bower and Grunt. My objective is to install frontend packages (e.g.: bootstrap) for my front-end project and have Grunt set up to automate build tasks.
I have been using Npm in the past and I understand that it works with the package.json file, while Bower works uses the bower.json file. In this case, I installed Grunt with Bower (not Npm), however I realised that in order to run Grunt I still need to add the package.json file.
Should I have been using Bower to install Grunt at the first place ?
Does my project always need the package.json file to use Grunt? And
if so, are there any good practices for dealing with the duplication
between the bower.json and package.json files. (name, version of the app, etc…)
Thanks
grunt (grunt-cli) is command line task runner, not frontend library :), so installing it via bower is strange, but possible due to the fact that bower is using npm as base repository :)
package.json store all tool dependencies in your project - like bower or grunt
In frontend development bower should be handling css/js libraries in your app like jQuery, Angular.js, Bootstrap. NPM is for node.js extensions/utilities like grunt, karma devDependencies.
http://blog.nodejitsu.com/package-dependencies-done-right/

bower dependencies to CONCAT to a project

I have a project and the current bower dependencies are a good fit for me.
is there a way to concat them to the project without each time call bower install?
To concat assets you should look at grunt-contrib-concat. This will allow you to concatenate all your files.
In terms of the bower install you shouldn't have to run that each time, only when there is a fresh install of the project and the dependencies need to be added.
Bower install will install the dependencies needed and bower update will update dependencies based on what is specified in the bower.json.

Resources