Giter VIP home page Giter VIP logo

gulp-iconfont-css's Introduction

gulp-iconfont-css

Generate (S)CSS file for icon font created with Gulp

Warning

Recent versions of gulp-iconfont emit a glyphs (or codepoints < 4.0.0) event (see docs) which should likely be used instead of the workflow described below. However, it will continue to work as expected.

Usage

First, install gulp-iconfont and gulp-iconfont-css as development dependencies:

npm install --save-dev gulp-iconfont gulp-iconfont-css

Then, add it to your gulpfile.js. Important: gulp-iconfont-css has to be inserted before piping the files through gulp-iconfont.

var iconfont = require('gulp-iconfont');
var iconfontCss = require('gulp-iconfont-css');

var fontName = 'Icons';

gulp.task('iconfont', function(){
  gulp.src(['app/assets/icons/*.svg'])
    .pipe(iconfontCss({
      fontName: fontName,
      path: 'app/assets/css/templates/_icons.scss',
      targetPath: '../../css/_icons.scss',
      fontPath: '../../fonts/icons/'
    }))
    .pipe(iconfont({
      fontName: fontName
     }))
    .pipe(gulp.dest('app/assets/fonts/icons/'));
});

gulp-iconfont-css works well with gulp-iconfont but you can use it in a more modular fashion by directly using gulp-svgicons2svgfont, gulp-svg2tff, gulp-ttf2eot, gulp-ttf2woff and/or gulp-ttf2woff2.

API

iconfontCSS(options)

options.fontName

Type: String

The name of the generated font family (required). Important: Has to be identical to iconfont's fontName option.

options.path

Type: String

The template path (optional, defaults to css template provided with plugin). If set to scss, sass or less, the corresponding default template will be used. See templates.

options.targetPath

Type: String

The path where the (S)CSS file should be saved, relative to the path used in gulp.dest() (optional, defaults to _icons.css). Depending on the path, it might be necessary to set the base option, see #16.

options.fontPath

Type: String

Directory of font files relative to generated (S)CSS file (optional, defaults to ./).

options.cssClass

Type: String

Name of the generated CSS class/placeholder. Used for mixins and functions, too. See https://github.com/backflip/gulp-iconfont-css/tree/master/templates. Default is icon.

options.engine

Type: String

options.aliases

Type: Object

Use if you want multiple class names for the same font/svg value ie. use the github svg as .github or .git

The template engine to use (optional, defaults to lodash). See https://github.com/visionmedia/consolidate.js/ for available engines. The engine has to be installed before using.

options.cacheBuster

Type: String

A string that will be appended to fonts URLs as query string (optional, defaults to the emtpy string, i.e. no cache buster). Query string heading questing mark ? is included automatically. Useful to dodge HTTP cache when deploying a modified iconfont.

gulp-iconfont-css's People

Contributors

backflip avatar felicec avatar fishonweb avatar htanjo avatar miclf avatar mrtbld avatar nfriedly avatar nfroidure avatar overzealous avatar s-pyadyshev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gulp-iconfont-css's Issues

add timestamp as a template variable for cachebusting

something like this

@font-face {
    font-family: "<%= fontName %>";
    src: url('<%= fontPath %><%= fontName %>.eot?t=<%= timestamp %>');
    src: url('<%= fontPath %><%= fontName %>.eot?t=<%= timestamp %>#iefix') format('eot'),
        url('<%= fontPath %><%= fontName %>.woff2?t=<%= timestamp %>') format('woff2'),
        url('<%= fontPath %><%= fontName %>.woff?t=<%= timestamp %>') format('woff'),
        url('<%= fontPath %><%= fontName %>.ttf?t=<%= timestamp %>') format('truetype'),
        url('<%= fontPath %><%= fontName %>.svg?t=<%= timestamp %>#<%= fontName %>') format('svg');
}

write after end

issue:

[14:12:22] Using gulpfile ~/Documents/mygit/zrsm-worker/gulpfile.js
[14:12:22] Starting 'iconfont'...
Unhandled rejection Error in plugin 'gulp-iconfont-css'
Message:
    Error in template: write after end

my template:

@font-face {
  font-family: "<%= fontName %>";
  src: url('<%= fontPath %><%= fontName %>.eot');
  src: url('<%= fontPath %><%= fontName %>.eot?#iefix') format('eot'),
    url('<%= fontPath %><%= fontName %>.woff') format('woff'),
    url('<%= fontPath %><%= fontName %>.ttf') format('truetype'),
    url('<%= fontPath %><%= fontName %>.svg#<%= fontName %>') format('svg');
}

.icon:before {
  font-family: "<%= fontName %>";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  /* speak: none; only necessary if not using the private unicode range (firstGlyph option) */
  text-decoration: none;
  text-transform: none;
}

<% _.each(glyphs, function(glyph) { %>
.icon-<%= glyph.fileName %>:before {
  content: "\<%= glyph.codePoint %>";
}
<% }); %>

my gulpfile:

gulp.task('iconfont', function () {
  return gulp.src('app/icons/svgs/*.svg', {
      buffer: false
    })
    .pipe(plugins.iconfontCss({
      fontName: fontName,
      path: 'app/icons/own-icons-template.css',
      targetPath: '../styles/own-icons.css',
      fontPath: '../fonts/'
    }))
    .pipe(plugins.iconfont({
      fontName: fontName
    }))
    .pipe(gulp.dest(path.join(targetDir, 'fonts')))
    .on('error', errorHandler);
});

Question about 'Usage' section in README

The "Usage" section in the README says to set the path property to 'app/assets/css/templates/_icons.scss'. I get an error when setting the path property to a file in this way. The documentation states that the path property can be css (default), less, or scss. Maybe I'm missing something, but I think this property is set incorrectly in the "Usage" section.

Sentence for css code

Hi, I suggest changing the style templates, this will simplify the entries in the classes
in these templates: _icons.css, _icons.less, _icons.scss, _icons.styl
In the template, this entry:
.icon:before {...}
it is better to write like this
[class^="icon-"], [class*=" icon-"], [data-icon]:before {...}
[data-icon]:before { content: attr(data-icon) !important; }
instead of such a record <i class="icon icon-name"></i> it suffices to write so <i class="icon-name"></i> and as the data attribute <i data-icon="&#xe001"></i>.

html template

If i created a way for this plug to also generate an html template, would you accept it?

my first attempt i fear is not good enough (simply adding |html #L33) as you have to call iconfontCSS twice in your gulpFile (along with iconFont twice).

my second attempt was to create a htmlTemplate config option, but this meant i used a global streamConfig to get around a closure problem with streams, plus the output was only ever a single file rather than the chosen extension and a html file.

Do you know how to create and save 2 separate streams or this against how gulp should work?

tag and publish the latest changes on npm

I would like to use the .css (working with stylus @import) and npm install from github isn't really safe (as theses changes aren't tag, I get the latest master no matter what).

thanks 😄

Adding new icons then build issue

Hi all,

I'm excited with that plugin and I'm already using it, but I faced a problem that when adding new SVG icons to the folder, the current css that generated on build gets changed after building to get the new icons, and the icons content code is changed.

Is anyone faced the same issue, and how we can solve it?

Option to define font files order

Usually I pass the SVG file first, so that Chrome renders the icons smoother.
Is that any chance we could get an option to set the font files order on the generated css?

Thanks.

Font files (ttf, woff, etc) are not actually being created

Hey there!

Just wondering if anyone has had a similar issue...

Everything seems to be working fine apart from the fact that the font files are not being generated?

Here's what I have...

var paths = {
    fontsDir: 'webapp/media/static/' + project + '/fonts/',
    stylesDir: 'webapp/media/static/' + project + '/styles/'
};
gulp.task('iconfont', function() {
  return gulp.src([paths.fontsDir + 'svg/*.svg'])
    .pipe(iconfontCss({
      fontName: fontName,
      path: paths.fontsDir + 'icons.css',
      targetPath: '/styls/site/icons.css',
      fontPath: paths.fontsDir
    }))
    .pipe(iconfont({
      fontName: fontName
    }))
    .pipe(gulp.dest(paths.stylesDir));
});

Any ideas?

Thanks

targetPath creates subfolders with a full directory path

How can I resolve this problem ?
The targetPath creates a subfolder inside the fonts folder that comprises the full working path inside the fonts director.
For example:
fonts/
Users/username/full project path/icons.scss.

The problem occurs in MacOs and Linux. I do not desire to have either additional folders created or _icons.scss.

Icon selector in simple way

Actually, it's necessary to write ".icon .icon-nameoficon" inside class attribute but why not to use this selector :

[class^="icon-"],
[class*=" icon-"]{...}

with this, it's only necessary to use ".icon-nameoficon".

Ability to for the mixins and function to be seperate from the font-face declaration and icon classes

I am running into a issue with having the mixins, function, font-face, and classes all in one file. The issue is that in a component based architecture the mixin and function need to be available for usage on any stylesheet. Importing the icon stylesheet everywhere allows the mixins to work properly but causes the font-face declaration and icon classes to be printed on every components stylesheet when those only need to be printed once in a base stylesheet.

A possible solution is to have the mixins and function in a separate file from the font-face declaration and icon classes so a user can set up their imports to use the mixin globally and without the duplicated font-face and classes.

Any help is appreciated. At this moment I am not sure how to create the separate files with a custom template.

Thank you

Update npm package

It seems that the package on npm is at least a year older than the version with the cacheBuster.

Allow us to specify the format

In gulp-iconfont we can specify the formats, but due to how gulp-iconfont-css generates the font-face code block we need to specify all the formats to avoid issues in some browsers.

Personally, I would like to just generate the woff and woff2 files, but right now I can't due to the hardcoded font-face block.

Lodash error while generating icons

Any idea what might be causing this?

/Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp-iconfont-css/index.js:104
                        throw error;
                              ^
TypeError: Object function lodash(value) {
      // don't wrap if already wrapped, even if wrapped by a different `lodash` constructor
      return (value && typeof value == 'object' && !isArray(value) && hasOwnProperty.call(value, '__wrapped__'))
       ? value
       : new lodashWrapper(value);
    } has no method 'template'
  at Function.exports.lodash.render (/Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp-iconfont-css/node_modules/consolidate/lib/consolidate.js:537:56)
  at /Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp-iconfont-css/node_modules/consolidate/lib/consolidate.js:146:25
  at /Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp-iconfont-css/node_modules/consolidate/lib/consolidate.js:99:5
  at fs.js:266:14
  at /Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp-watch/node_modules/vinyl-fs/node_modules/graceful-fs/graceful-fs.js:104:5
  at /Users/luismartins/Sites/prestashop/themes/domatica/src/node_modules/gulp/node_modules/vinyl-fs/node_modules/graceful-fs/graceful-fs.js:104:5
  at Object.oncomplete (fs.js:107:15)

Icon created conflict with emoji on iphone

Using icon css from this cause issue on iphone.

  1. When new font is added whole fonts are mismatched.
  2. Fonts on iphone are replaced by random emojis on iphone.

Any possible solution to fix this.

Thanks

Custom templates

Goal

As the grunt-webfont options, it would be great to able custom template usage to allow more flexibility.

Concrete case

I have an icon set provided by a designer company which is fully compatible with FontAwesome.

So I set cssClass: 'fa-nx' option but I don't want the fa-nx css definition.

Instead, I would like to include the font-family rules to each fa-nx-* class in order to use my customs icons like this: fa fa-nx-my-icon.

Issue in mixin icon: can't extend %icon

I'm having trouble displaying my icons and I believe it's because the mixin icon-styles is not being properly included inside the icon mixin.

@mixin icon($filename, $insert: before, $extend: true) {
    &:#{$insert} {
        @if $extend {
            @extend %icon;
        } @else {
            @include icon-styles;
        }
        content: icon-char($filename);
    }
}

If I remove the if/else state and try to @extend %icon directly, it's not working either. However, if I ìnclude @icon-styles directly, it works.

What might be causing this behaviour? Am I missing something?

targetPath issue

I think I've got the path, targetPath and fontPath configured correctly, but I'm having an issue now with targetPath.

I'm working on a Laravel app and have my gulpfile located in the project root. So my directory structure looks like:

  • /app
  • /public
  • gulpfile.js

My gulp configuration code for this plugin is as follows:

var fontName = 'icons';

gulp.task('icon-font', function(){
    gulp.src(['app/assets/icons/*.svg'])
        .pipe(iconfontcss({
            fontName: fontName,
            path: 'app/assets/scss/templates/_icons.scss',
            targetPath: '../../../app/assets/scss/components/_icons.scss',
            fontPath: '../fonts/'
        }))
        .pipe(iconfont({
            fontName: fontName
        }))
        .pipe(gulp.dest('public/assets/fonts/'));
});

The problem I'm running into is this: the targetPath is supposed to go into app/assets/scss/components/ but its going into public/assets/scss/components instead. It's like "app" is being replaced by "public" in the path.

Am I doing something wrong or is this an issue with the plugin?

[proposal] Extract code point retrieval logic into a separate function

(I’m using the .scss template to give examples. I don’t if it’s technically possible to do the same with Less)

The correct code point associated to an icon file name is currently determined by a series of @if instructions generated inside the icon mixin, as shown below.

@mixin icon($filename) {
    $char: "";
<% _.each(glyphs, function(glyph) { %>
    @if $filename == <%= glyph.fileName %> {
        $char: "\<%= glyph.codePoint %>";
    }<% }); %>

    &:before {
        @extend %icon;
        content: $char;
    }
}

However, in some cases, it would be useful to be able to get the code point of a given icon in order to use it for other purposes outside of this mixin.

For example, I have a use case where I would like to use an icon in an :after pseudo-element.

.some-button:after {
    @include icon('unicorn');
}

This doesn’t work. Calling the mixin produces an error, because it inserts a :before pseudo-element inside the :after selector.

I suggest extracting the series of @ifto their own function, with the unique goal of returning the code point associated to an icon name. It would make this logic reusable and allow this kind of syntax:

.some-button:after {
    content: icon-char('unicorn');
}

The function would look like that:

@function icon-char($filename) {
    $char: "";

    @if $filename == unicorn {
        $char: "\E001";
    }
    @if $filename == cat {
        $char: "\E002";
    }
    /* other @if instructions */

    @return $char;
}

and the icon mixin itself could be simplified to

@mixin icon($filename) {
    &:before {
        @extend %icon;
        content: icon-char($filename);
    }
}

What do you think?

Sass icon mixin doesn’t work with media queries

I came across an issue that, unfortunately, I contributed to create with the changes introduced in the bundled template via #11.

Now, when we try to call the icon mixin inside a @mediadirective, we get the following error:

error assets/sass/main.scss (Line 10 of assets/sass/partials/_icons.scss: You may not @extend an outer selector from within @media.
You may only @extend selectors within the same directive.

The cause is the use of the @extend directive inside the mixin.

Reverting #11 would solve the issue but would also remove the ability to greatly improve the size of the output CSS… I think we could find a compromise.

Adding an additional parameter to the mixin could allow to explicitly opt out from @extends and would make everything work again with media queries. It could look like that:

@mixin icon($filename, $insert: before, $selector: extend) {
    &:#{$insert} {
        @if ($selector == 'extend') {
            @extend %icon;
        } @else {
            font-family: "icons";
                -webkit-font-smoothing: antialiased;
                -moz-osx-font-smoothing: grayscale;
            font-style: normal;
            font-variant: normal;
            font-weight: normal;
            // speak: none; // only necessary if not using the private unicode range (firstGlyph option)
            text-decoration: none;
            text-transform: none;
        }
        content: icon-char($filename);
    }
}

To be honest, this doesn’t look really elegant to me (it duplicates the style of the %icon placeholder selector) but this is the best solution I could think of.

Does anybody have a better idea or any suggestion?

Same issue as #33 : the generated scss file does not seem to match the rules defined

Hello,

I'm having the same issue as #33. Unless I'm mistaken (which is possible), the following code :

@mixin <%= cssClass%>($filename, $insert: before, $extend: true) {
    &:#{$insert} {
        @if $extend {
            @extend %<%= cssClass%>;
        } @else {
            @include <%= cssClass%>-styles;
        }
        content: <%= cssClass%>-char($filename);
    }
}

should not result in the following (extracted from your test files) :

.custom-icon:before {
    font-family: "Icons";
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    text-decoration: none;
    text-transform: none;
}

.custom-icon-github:before {
    content: "\E002";
}

.custom-icon-twitter:before {
    content: "\E003";
}

but rather :

.custom-icon-github:before, .custom-icon-twitter:before {
    font-family: "Icons";
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    text-decoration: none;
    text-transform: none;
}

.custom-icon-github:before {
    content: "\E002";
}

.custom-icon-twitter:before {
    content: "\E003";
}

Let me explain my thinking :

The "&:#{$insert}" part replaces & with whatever selector is used right before, based on your test files this is an example :

.custom-icon-github {
    @include custom-icon(github);
}

so & should be replaced with .custom-icon-github and #{$insert} by before (as it is the defautl value)

Then the @extend %<%= cssClass%>; part should be called as $extend is true by default
which should result in the following logic :

.custom-icon-github should extend %cssClass (which in this case resolve to %custom-icon
therefore we shoudl not end-up with a .custom-icon:before selector but a .custom-icon-github:before selector since %custom-icon is (again if I understood how extends works right) resolved to .custom-icon-github:before (see http://sass-lang.com/documentation/file.SASS_REFERENCE.html#placeholders)

Allow extra variables to be passed to the template

Use case: pass a random string to the mustache template, so we can create a font-face definition like:

  • icons.eot?f7jjdvlkflikheqoxbt9#iefix

This may be really needed when updating an existing font on a site using cache mechanism.

This can be very easily done, by adding 1 line when building the SCSS file from the template:

consolidate[config.engine](config.path, {
                                        glyphs: glyphMap,
                                        fontName: config.fontName,
                                        fontPath: config.fontPath,
                                        cssClass: config.cssClass,
                                        config: config
                                }, function(err, html) {

It just pass the full "config" variable, so if you add any extra variable in the Gulp file, it is available in the template.

Full example

Gulpfile

.pipe(iconfontCSS({
      fontName: fontName,
      path: './src/templates/iconfont/_icons.scss',
      targetPath: '../src/scss/abstractions/_font-icons.scss',
      fontPath: '../fonts/',
      cssClass: 'fonticon',
      hash: Math.random().toString(36).substring(6)
    }))

Template

@font-face {
  font-family: "<%= fontName %>";
  src: url('<%= fontPath %><%= fontName %>.eot?<%= config.hash %>');
  src: url('<%= fontPath %><%= fontName %>.eot?<%= config.hash %>#iefix') format('eot'),
    url('<%= fontPath %><%= fontName %>.woff2?<%= config.hash %>') format('woff2'),
    url('<%= fontPath %><%= fontName %>.woff?<%= config.hash %>') format('woff'),
    url('<%= fontPath %><%= fontName %>.ttf?<%= config.hash %>') format('truetype'),
    url('<%= fontPath %><%= fontName %>.svg?<%= config.hash %>#<%= fontName %>') format('svg');
}

Add support for some kind of aliasing

Not quite sure how this would work, but for now the only way to create aliases for icons is to duplicate the icon, which as we all know is not very maintainable. It would be nice if we could somehow define that an icon has an alias so that in the outputted CSS the icons have the same content

Template CSS selector improvement

It seems like we could save a few bytes by using a using a starts-with selector to apply the general icon styles rather than generating a long list.

Current generated list:

[ ... ]
.icon-message-alert:before,
.icon-news:before,
.icon-coupon:before,
.icon-twitter-box:before,
.icon-twitter:before {
  font-family: "RadicalFont";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  text-decoration: none;
  text-transform: none; }

Smaller pattern-based selector:

[class^="icon-"]:before {
  font-family: "RadicalFont";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  text-decoration: none;
  text-transform: none; }

Don't run if font not changed

Hi. I have a problem with gulp-iconfont, gulp-iconfont-css'. How I can check if font changed? I try use 'gulp-changed' - but still don't work. Font generate(( Can somebody help me?

SCSS - template suggestion

I would like to make a suggestion regarding the SCSS template:
I re-wrote the SCSS template in a way which I feel is more readable and produce less code:

Template:

@font-face {
    font-family: "<%= fontName %>";
    src: url('<%= fontPath %><%= fontName %>.ttf') format('truetype'),
         url('<%= fontPath %><%= fontName %>.svg#<%= fontName %>') format('svg');
}

@mixin styles{
    font-family: "<%= fontName %>";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    // speak: none; // only necessary if not using the private unicode range (firstGlyph option)
    text-decoration: none;
    text-transform: none;
}

[class^="icon-"], [class*=" icon-"]{
    @include styles;
}


$svg-font-map: (<% _.each(glyphs, function(glyph) { %>"<%= glyph.fileName %>":"\<%= glyph.codePoint %>", <% }) %>);

@mixin <%= cssClass%>($filename, $insert: before, $extend: true) {
    &::#{$insert}{ content:map-get($svg-font-map, $filename); @include styles; }
}

<% _.each(glyphs, function(glyph) { %>.<%= cssClass%>-<%= glyph.fileName %> { @include <%= cssClass%>(<%= glyph.fileName %>); }
<% }); %>

Output:

@font-face {
    font-family: "foo";
    src: url('../fonts/foo.eot');
    src: url('../fonts/foo.eot?#iefix') format('eot'),
        url('../fonts/foo.woff') format('woff'),
        url('../fonts/foo.ttf') format('truetype'),
        url('../fonts/foo.svg#foo') format('svg');
}

    @mixin styles{
    font-family: "emc";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
    // speak: none; // only necessary if not using the private unicode range (firstGlyph option)
    text-decoration: none;
    text-transform: none;
}

[class^="icon-"], [class*=" icon-"]{
    @include styles;
}
$icon-map: ("arrow-down":"\E001", "arrow-up":"\E002", "arrow_back":"\E003");

@mixin icon($filename, $insert: before, $extend: true) {
    &::#{$insert}{ content:map-get($svg-font-map, $filename); @include styles; }
}

.icon-arrow-down { @include icon(arrow-down); }
.icon-arrow-up { @include icon(arrow-up); }
.icon-arrow_back { @include icon(arrow_back); }

peerDependencies issues

Hi guys,

I've been running into this issue when I try to install gulp-iconfont-css and gulp-icon-font

npm WARN peerDependencies The peer dependency gulp-iconfont@~4.0.0 included from gulp-iconfont-css will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency mongodb@~1.4 included from mongoskin will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.

Any thoughts on this?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.