Typings es6-promise give 'no dependencies' as output - meteor

I had tried to install typings es6-promise like step 0 angular2-meteor:
http://www.angular-meteor.com/tutorials/socially/angular2/bootstrapping
But when i run 'typings install es6-promise --save', it was return
Es6-promise |_ (No dependencies)
Have problem here?

No, it simply means that the es6-promise package is stand-alone and does not depend on any other package.
You can list your installed packages using:
$ typings ll
└── es6-promise
and make sure it is what you expected.

Related

using flag-icon-css (npm package) with meteor

I'm trying to use the npm package flag-icon-css with meteor.
I'm using sass to modify the icons path as follows:
$flag-icon-css-path: '/npm/node_modules/flag-icon-css/flags';
$flag-icon-rect-path: '/4x3';
$flag-icon-square-path: '/1x1';
#import '{}/node_modules/flag-icon-css/sass/flag-icon.scss';
but I'm stuck as i don't understand what is the correct path for the variable $flag-icon-css-path .
the question is simple : how can I access files that are in a npm package ? what is the correct path ? Do I need to export them all explicitly or something similar ?
It turns out that files from npm packages are not directly visible to the client. A solution should be to wrap the npm package in a meteor package and export what is needed to the client explicitly. In this case the solution is to use an already made package for this npm module : meteor add jss:flag-icon
NPM are packages that should be installed. It would then be able to directly adress it:
https://docs.npmjs.com/cli/install
Go in the folder using the prompt, and execute:
npm install

How to install NPM package from GitHub for Meteor?

I have forked an npm package on GitHub, made changes to it, and now want to install the package in my Meteor app directly from GitHub.
My package.json looks like so:
{
"dependencies": {
"semantic-ui-react": "git+https://git#github.com/nolandg/Semantic-UI-React.git",
}
}
I then run
meteor npm install
Which appears to work fine and tells me it's installed the package:
semantic-ui-react#0.61.6 (git+https://git#github.com/nolandg/Semantic-UI-React.git#f27d5c736e5de1eed0acf7769f18caee57578526)
And indeed the package appears in the node_modules folder. But when I try to start my Meteor app, I get this error:
Cannot set property '/my-website/node_modules/semantic-ui-react/package.json' of undefined
at Resolver._resolvePkgJsonMain (/tools/isobuild/resolver.js:320:9)
Has anyone successfully install an npm package in a Meteor app directly from GitHub? I can't figure this one out. Thanks!
Meteor version: 1.4.2.3
The main reason why the package does not work when fetching from git is because it is not configured to work that way. This is not a Meteor specific problem, but a problem that a JS developer may face sometimes.
For this particular case there are two problems:
The whitelist files field in package.json only contains src and dist folder. That means when you fetch it by npm almost all config files needed to build the code are gone.
Code for this package requies to be built in order to work with your code. This is done when the author publish it to npm, but you fetch it directly from github so this step is undone.
Because you already folked and modified the package, so let modify the package.json as below (remove all the comments I added them to give you some explanation), push it to github, and fetch it again by npm:
// remove the "files" field
// ...
"scripts": {
// this script is used to build the package
"postinstall": "postinstall-build dist \"npm run build:commonjs\""
// ...
},
"dependencies": {
// this helps build the package
"postinstall-build": "^2.1.3"
},
// ...
Packages are not usually installed from github, they are published, which means that many versions of a package are available, you can choose which one you get. I'm not sure if what you are doing is possible, but it's certainly inadvisable.
If you want to make changes to a github package, you can download the it to your local machine and do npm link, so that it uses your local package instead of the one on npm. Read more about it at https://docs.npmjs.com/cli/link
Why do you not use simple command?
meteor npm install https://github.com/nolandg/Semantic-UI-React.git
I did:
meteor create test
cd test
meteor npm install
meteor add react react-dom
meteor npm install https://github.com/nolandg/Semantic-UI-React.git
meteor
And no errors (-:

'typings install moment' fails for Aurelia

It's simple: installing moment via Typings fails:
Typings install moment --save
with 'Unable to find "moment" ("npm") in the registry...' In other posts some people to say to use '--ambient' like so:
Typings install --ambient moment --save
while this works, it corrupts my Aurelia module ts files. It changes
export * from '~aurelia....'
to
import alias = requires('~aurelia....')
export = alias
It does this in EVERY module file and this makes the app fail b/c it no longer recognizes the Aurelia framework modules. So the --ambient flag is bad and I need to just install the basic moment.d.ts file via Typings.
Any ideas how to get Typings to install moment?
Try this:
typings install dt~moment --global --save
For more see Typings docs

Can I multiple run npm installs simultaneously

If I'm setting up a project and running npm install -abc xyz, can I run another npm install in another terminal instance, for the same project, whilst this is still running?
Thanks!
You can install multiple packages with a single command like this:
npm install --save package1 package2 package3 ...
EDIT:
Installing packages separately, while theoretically possible, could create problems. When an install command is issued, npm looks up existing modules and downloads missing packages into a staging folder .staging inside node_modules. Once downloaded it copies the packages into the node_modules sub-folder (and removes .staging).
In npm2, modules had their own dependencies stored underneath themselves like this:
node_modules
- dependencyA
- node_modules
- dependencyC
- dependencyB
- node_modules
- dependencyC
Notice how dependency A and B both rely on C. If C is the same version in both cases, it would use twice the space.
In npm3, dependencies are flattened like this:
node_modules
- dependencyA
- dependencyB
- dependencyC
If for some reason an older version is used in a dependency, it follows the npm2 convention for that module.
I'd stick with the intended use of npm and use the multiple install functionality.
I simply use the following
example
npm i daterangepicker select2

Npm module "grunt-contrib-imagemin" not found, Is it installed?

I run into this error, when I try to do build a project with "grunt build".
There seems to be no problem when I test the project by doing "grunt server".
The project has been scaffolded and managed with: yeoman/grunt/bower. In Windows.
Everything went well and then a week ago or so it started doing this. I can't build projects no more.
When I try to install the module doing:
npm install grunt-contrib-imagemin
It can never install it, get the following "weird" error.
Any hints please?
Ok I found a way to solve this:
In your package.json, add "jpegtran-bin": "0.2.0" before the reference to imagemin
Delete the node_modules folder in your project, and run "npm install" and "bower install" again
There seem to be an issue with the jpegtran's latest version.
!! - Please note this is just a workarround waiting for the bugfix.
Like the program suggests, you need to install the npm module.
npm i --save-dev grunt-contrib-imagemin
Considering you're on Windows you might want to take a look at the project's GitHub repo for additional installation instructions.
There's an issue with a package contrib-imagemin references that prevents it from properly installing on Windows.
GitHub issue on grunt-contrib-imagemin: https://github.com/gruntjs/grunt-contrib-imagemin/issues/109
GitHub pull request on the offending library: https://github.com/yeoman/node-jpegtran-bin/pull/38
For now, you can manually specify "jpegtran-bin": "0.2.0" in your package.json and it should function as a workaround. If it's a pain point for you, go comment on that pull request and perhaps it'll convince the project maintainer to actually take a look and comment as well.
I had the same problem with 0.3.0 version, but once I updated to 0.4.0 the problem was solved. Check your package.json. Hope that helps!
"grunt-contrib-imagemin": "~0.4.0",
As of May 2015 I solved this by deleting node_modules and running npm install.
I am using windows, I was getting same error.
So I edited the Environmental Variables.
Just add: C:\Ruby200-x64\bin to your PATH variable and restart node prompt.
The imagemin install seems to not run correctly when called by grunt-contrib-imagemin. I just do
cd ./node_modules/grunt-contrib-imagemin/node_modules/imagemin
npm install
And then it's fine.
On Ubuntu 14.04.3 LTS, package.json containing:
"grunt-contrib-imagemin": "~0.4.0",
I had to reinstall Grunt (but the jpegtran-bin workaround, or just removing node_modules and running npm install wasn't enough, I needed the following (with sudo):
rm -rf node_modules/
sudo npm update -g npm
sudo npm install -g grunt-cli

Resources