Giter VIP home page Giter VIP logo

nodejs-installer's Introduction

Latest Stable Version Latest Unstable Version License Scrutinizer Code Quality

NodeJS installer for Composer

This is an installer that will download NodeJS and NPM and install them in your Composer dependencies. Installation is skipped if NodeJS is already available on your machine.

Why?

NodeJS is increasingly becoming a part of the tool-chain of modern web developers. Tools like Bower, Grunt, Gulp... are used everyday to build applications. For the PHP developer, this means PHP projects have build dependencies on NodeJS or Bower / NPM packages. The NodeJS-installer attempts to bridge the gap between NodeJS and PHP by making NodeJS easily installable as a Composer dependency.

Building on this package, other packages like koala-framework/composer-extra-assets can be used to automatically fetch Bower / NPM packages, run Gulp / Grunt tasks, etc...

How does it work?

Simply include this package in your composer.json requirements:

{
    "require": {
        "mouf/nodejs-installer": "~1.0"
    }
}

By default, if NodeJS is not available on your computer, it will be downloaded and installed in vendor/nodejs/nodejs.

You should access NodeJS and NPM using the scripts created into the vendor/bin directory:

  • vendor/bin/node (vendor/bin/node.bat on Windows)
  • vendor/bin/npm (vendor/bin/npm.bat on Windows)

Options

A number of options are available to customize NodeJS installation:

{
    "require": {
        "mouf/nodejs-installer": "~1.0"
    },
    "extra": {
        "mouf": {
            "nodejs": {
                "version": "~0.12",
                "targetDir": "vendor/nodejs/nodejs",
                "forceLocal": false
            }
        }
    }
}

Available options:

  • version: This is the version number of NodeJS that will be downloaded and installed. You can specify version constraints in the usual Composer format (for instance "~0.12" or ">0.11").
    Default value: * The latest stable version of NodeJS is installed by default.
  • targetDir: The target directory NodeJS will be installed in. Relative to project root.
    This option is only available in the root package.
    Default value: vendor/nodejs/nodejs
  • forceLocal (boolean): If set to true, NodeJS will always be downloaded and installed locally, even if NodeJS is already available on your computer.
    This option is only available in the root package.
    Default value: false
  • includeBinInPath (boolean): After the plugin is run in Composer, the vendor/bin directory can optionally be added to the PATH. This is useful if other plugins rely on "node" or "npm" being available globally on the computer. Using this option, these other plugins will automatically find the node/npm version that has been downloaded. Please note that the PATH is only set for the duration of the Composer script. Your global environment is not impacted by this option.
    This option is only available in the root package.
    Default value: false

Custom script

The installer listens to the following composer scripts to be launched:

{
    "post-install-cmd": {
        // ...
    },
    "post-update-cmd": {
        // ...
    }
}

If you need to launch the installer manually, you can run the following command:

$ composer run-script download-nodejs

nodejs-installer's People

Contributors

acrollet avatar dbu avatar itmo-urir avatar kaufmo avatar merwan avatar moufmouf avatar nsams avatar pedrotroller avatar seldaek avatar xhuberty 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodejs-installer's Issues

Detection of local nodejs by priority

In my enviroment I have
/usr/bin/node
and
/usr/local/bin/node

The current code for this project search first for /usr/bin/node when I think it should give preference to /usr/local/bin/node

broken vendor/bin/npm if node is installed globally but without npm

This happened to me on archlinux where npm is an optional package. (I think also for debian)

Possible options:

  • install node+npm locally
  • fail with an error (telling the user that he has to install npm)
  • generate only vendor/bin/node and no /vendor/bin/npm

The last option should be configurable as composer-extra-assets will always require npm.

Error with forceLocal: true (Windows)

Hi!

I tried to use your installer with Koala Framework. See last messages in this thread:
koala-framework/koala-framework#349

My composer.json:

{
    "require": {
        "koala-framework/koala-framework": "3.8.x-dev",
        "phpoffice/phpexcel": "1.8.1"
    },
    "extra": {
        "mouf": {
            "nodejs": {
                "version": "~0.12",
                "targetDir": "vendor/nodejs/nodejs",
                "forceLocal": true
            }
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

Output after composer update:

c:\OpenServer\domains\aviashelf2>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Writing lock file
Generating autoload files
Installing NodeJS v0.12.9
  Downloading from https://nodejs.org/dist/v0.12.9/node.exe
    Downloading: 100%
    Downloading: 100%


-


\


|


/


-


\


|


/


-
(SO MUCH LINES OF THIS SYMBOLS! )
-


\


|


/


-

npm ERR! Error: write EPIPE
npm ERR!     at exports._errnoException (util.js:746:11)
npm ERR!     at Socket._writeGeneric (net.js:692:26)
npm ERR!     at Socket._write (net.js:711:8)
npm ERR!     at doWrite (_stream_writable.js:301:12)
npm ERR!     at writeOrBuffer (_stream_writable.js:288:5)
npm ERR!     at Socket.Writable.write (_stream_writable.js:217:11)
npm ERR!     at Socket.write (net.js:636:40)
npm ERR!     at Console.log (console.js:55:16)
npm ERR!     at C:\OpenServer\domains\aviashelf2\vendor\nodejs\nodejs\node_modules\npm\lib\install.js:100:27
npm ERR!     at C:\OpenServer\domains\aviashelf2\vendor\nodejs\nodejs\node_modules\npm\lib\install.js:194:5
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR!     <http://github.com/npm/npm/issues>

npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\OpenServer\\domains\\aviashelf2\\vendor\\nodejs\\nodejs\\\\node.exe" "C:\\OpenServer\\domains\\aviashelf2\\vendor\\nodejs\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "update" "npm"
npm ERR! cwd C:\OpenServer\domains\aviashelf2\vendor\nodejs\nodejs
npm ERR! node -v v0.12.9
npm ERR! npm -v 1.4.12
npm ERR! syscall write
npm ERR! code EPIPE
npm ERR! errno EPIPE

/
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\OpenServer\domains\aviashelf2\vendor\nodejs\nodejs\npm-debug.log

npm ERR! not ok code 0



  [Mouf\NodeJsInstaller\NodeJsInstallerException]
  An error occurred while updating NPM to latest version.



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--] [<packages>]...



c:\OpenServer\domains\aviashelf2>

Works only with second attempt:

c:\OpenServer\domains\aviashelf2>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
Installing NodeJS v0.12.9
  Downloading from https://nodejs.org/dist/v0.12.9/node.exe
    Downloading: 100%
    Downloading: 100%

(MANY UNUSEFUL LINES! )

[email protected] node_modules\npm

installing npm dependencies in 'C:\OpenServer\domains\aviashelf2/vendor/koala-framework/koala-framework'...
npm WARN temp-composer-extra-asssets@ No license field.
npm WARN package.json temp-composer-extra-asssets@ No license field.

installing bower dependencies...

c:\OpenServer\domains\aviashelf2>

Not work on Linux

Same....again =(((
#5

Now on Linux Ubuntu Server.

See:

mezin.a@puls:/var/www/puls$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing mouf/nodejs-installer (v1.0.4)
    Downloading: 100%

  - Installing koala-framework/library-swfobject (v2.2)
    Downloading: 100%

  - Installing koala-framework/library-swfupload (v2.2.0.2)
    Downloading: 100%

  - Installing symfony/console (v2.6.6)
    Downloading: 100%

  - Installing psr/log (1.0.0)
    Downloading: 100%

  - Installing symfony/finder (v2.6.6)
    Downloading: 100%

  - Installing symfony/event-dispatcher (v2.6.6)
    Downloading: 100%

  - Installing symfony/process (v2.6.6)
    Downloading: 100%

  - Installing koala-framework/file-watcher (dev-master 3a767b7)
    Cloning 3a767b7c46ac8fe45ce0aa94088908bad09171b0

  - Installing koala-framework/composer-extra-assets (v1.1.0)
    Downloading: 100%

  - Installing koala-framework/sourcemaps (v0.2.0)
    Downloading: 100%

  - Installing koala-framework/zendframework1 (v1.12.6-p2)
    Downloading: 100%

  - Installing twig/twig (v1.16.1)
    Downloading: 100%

  - Installing koala-framework/library-css3pie (v1.0.0)
    Downloading: 100%

  - Installing koala-framework/library-htmlawed (v1.1.14)
    Downloading: 100%

  - Installing koala-framework/library-silkicons (v1.3)
    Downloading: 100%

  - Installing koala-framework/extjs2 (v2.3.0-p5)
    Loading from cache

  - Installing koala-framework/koala-framework (3.8.x-dev 46c4a68)
    Cloning 46c4a68e67199bbca1ad6475ff8732fc02ab7d80

  - Installing phpoffice/phpexcel (dev-master c40bb23)
    Cloning c40bb233bfa59fe8aadc6f3714cf500ec2c38e0f

symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/event-dispatcher suggests installing symfony/http-kernel ()
koala-framework/koala-framework suggests installing tecnick.com/tcpdf (Allows generating pdfs from components)
koala-framework/koala-framework suggests installing amazonwebservices/aws-sdk-for-php (Integration with Amazon Web Services)
koala-framework/koala-framework suggests installing reprovinci/solr-php-client (Integration with Solr)
Generating autoload files

installing npm dependencies in '/var/www/puls/vendor/koala-framework/koala-framework'...
sh: 1: /var/www/puls/vendor/bin/npm: not found



  [RuntimeException]
  npm install failed



update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-autoloader] [--no-scripts] [--no-progress] [--with-dependencies] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [packages1] ... [packagesN]

Support download mirrors

Hi there!

I was wondering if this project is still active (seeing the last commits are from quite a while back), and if you would be open to a PR to add support for setting a download location other than nodejs.org?

If yes, then I'd be happy to work a bit on this.

Thanks!

NodeJS v4.0.0 fails using Vagrant (Linux)

After experiencing issue #20 I tried on a Vagrant box I have set up but had issues extracting the package with TAR. The following was my output:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files
Installing NodeJS v4.0.0
  Downloading from https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz
    Downloading: Connecting...
    Downloading: 0%           
    Downloading: 100%
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/is-property.js: Cannot open: No such file or directory
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/package.json: Cannot open: No such file or directory
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/LICENSE: Cannot open: No such file or directory
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/README.md: Cannot open: No such file or directory
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property: Cannot mkdir: Protocol error
tar: lib/node_modules/npm/node_modules/request/node_modules/har-validator/node_modules/is-my-json-valid/node_modules/generate-object-property/node_modules/is-property/.npmignore: Cannot open: No such file or directory
tar: bin/npm: Cannot create symlink to ‘../lib/node_modules/npm/bin/npm-cli.js’: Protocol error
tar: Exiting with failure status due to previous errors



  [Mouf\NodeJsInstaller\NodeJsInstallerException]                              
  An error occurred while untaring NodeJS (vendor/node-v4.0.0-linux-x64.tar.g  
  z) to vendor/nodejs/nodejs                         

nodejs-installer fails on arm (continued)

This is the continuation from #17 (nodejs-installer fails on arm (Raspberry pi). Installation failed on my Ubuntu for Odroid.

> php -r 'print php_uname("m")."\n";'
armv7l

Indeed the nodejs binaries for my architecture are available at https://nodejs.org/dist/v6.7.0/ under the name node-v6.7.0-linux-armv7l.tar.gz.

I could write a patch, but I don't know how to test it: I don't know how to make composer use the patched version of nodejs-installer on my machine.

Context: I try to install Wallabag on this machine.

Fail for alpine linux

Since there is no compiled packages that support musl intead of gcc this package is trying to download binaries that can't be executed giving messages that are not very useful like:

node: No such file or directory

Is it possible to detect this in the environment and fail with a message in this case?

Can't create bin script when bin folder doesn't exist

Your plugin looks promising!

One issue I found though:

$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

[ErrorException]                                                                                           
file_put_contents(/home/niko/www/testx/vendor/bin/node): failed to open stream: No such file or directory  

my composer.json:

{
    "require": {
        "mouf/nodejs-installer": "~1.0"
    },
    "extra": {
        "mouf": {
            "nodejs": {
                "version": "0.12.0",
                "minimumVersion": "0.8.0",
                "targetDir": "vendor/nodejs/nodejs"
            }
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

Workaround:
mkdir vendor/bin

Support for CYGWIN (Windows)

PHP_WINDOWS_VERSION_BUILD is undefined under CYGWIN (Windows) and Environment.php would not detect this. Suggestion; typically the following would return:

echo PHP_OS . ' ' . (8 * PHP_INT_SIZE);

CYGWIN 32

This could be used to decipher the platform as "Windows 32-bit compatible".

tar: bin/npx: Cannot utime: Operation not permitted

Hi,
I'm getting this error when using composer install:

Installing NodeJS v8.10.0                                                                                                                                                                               
  Downloading from https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.gz                                                                                                                        
Downloading (100%)tar: bin/npx: Cannot utime: Operation not permitted                                                                                                                                   
tar: bin/npm: Cannot utime: Operation not permitted                                                                                                                                                     
tar: Exiting with failure status due to previous errors                                                                                                                                                 
                                                                                                                                                                                                        
                                                                                                                                                                                                        
  [Mouf\NodeJsInstaller\NodeJsInstallerException]                                                                                                                                                       
  An error occurred while untaring NodeJS (vendor/node-v8.10.0-linux-x64.tar.gz) to vendor/nodejs/nodejs

I'm using this config:

"mouf": {
            "nodejs": {
                "version": "8.10.0",
                "forceLocal": true
            }
        }

BTW it was working when using root user but now I'm using a non roor user.

Remove NodeJS when removing package

Problem:

When removing the package, the locally installed NodeJS does not get removed.

Reproduce:

composer init
# configure "forceLocal": true
composer require --dev mouf/nodejs-installer
composer install --no-dev

Expected result:

vendor/nodejs folder should not be present.

Actual result:

vendor/nodejs folder exists.

Feature Request: Install for other OS

Hello,

I would like to request that we be able to install a version of Node for an architecture other than the one on which the Composer script is currently running. For example, I would like to be able to install the Linux version of Node even when running the Composer install on Mac OS.

This is useful in situations where the logical host on which the PHP app will be running is different than the platform on which the build process occurs. Think, for example, a dev environment where composer is executed on a physical MacOS host, but the PHP app is running inside of a Vagrant machine running Linux.

Fatal error when removing package

Installing, then removing the package results in a fatal error:

PHP Fatal error:  Class 'Mouf\NodeJsInstaller\NodeJsVersionMatcher' not found in .../vendor/mouf/nodejs-installer/src/NodeJsPlugin.php on line 59

Steps to reproduce:

composer init
composer require --dev mouf/nodejs-installer
composer install --no-dev

Stacktrace:

PHP Stack trace:
PHP   1. {main}() /composer.phar:0
PHP   2. require() /composer.phar:25
PHP   3. Composer\Console\Application->run() phar:///composer.phar/bin/composer:43
PHP   4. Symfony\Component\Console\Application->run() phar:///composer.phar/src/Composer/Console/Application.php:84
PHP   5. Composer\Console\Application->doRun() phar:///composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:126
PHP   6. Symfony\Component\Console\Application->doRun() phar:///composer.phar/src/Composer/Console/Application.php:147
PHP   7. Symfony\Component\Console\Application->doRunCommand() phar:///composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:195
PHP   8. Symfony\Component\Console\Command\Command->run() phar:///composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php:874
PHP   9. Composer\Command\InstallCommand->execute() phar:///composer.phar/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:257
PHP  10. Composer\Installer->run() phar:///composer.phar/src/Composer/Command/InstallCommand.php:131
PHP  11. Composer\Autoload\AutoloadGenerator->dump() phar:///composer.phar/src/Composer/Installer.php:330
PHP  12. Composer\EventDispatcher\EventDispatcher->dispatchScript() phar:///composer.phar/src/Composer/Autoload/AutoloadGenerator.php:252
PHP  13. Composer\EventDispatcher\EventDispatcher->doDispatch() phar:///composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:91
PHP  14. call_user_func:{phar:///composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151}() phar:///composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151
PHP  15. Mouf\NodeJsInstaller\NodeJsPlugin->postAutoloadDump() phar:///composer.phar/src/Composer/EventDispatcher/EventDispatcher.php:151

NodeJS v4.0.0 Install fails on Windows

Hi,

Just trying to get this composer package functioning correctly. My composer file has the following:

    "require-dev": {
        "mouf/nodejs-installer": "~1.0",
        "koala-framework/composer-extra-assets": "~1.1"
    },

And when I run composer update I get the following error:

Installing NodeJS v4.0.0
   Downloading from https://nodejs/org/dist/v4.0.0/node.exe
      Downloading: Connecting....

  [Composer\Downloader\TransportException]
  The "https://nodejs/org/dist/v4.0.0/node.exe" file could not be downloaded
   (HTTP/1.1 404 Not Found)

Any help would be appreciated.

nodejs-installer fails on arm (Raspberry pi)

nodejs-installer doesn't work on by raspberry pi

$ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux

it tires to download x86 binaries:

Installing NodeJS v0.12.7
  Downloading from http://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x86.tar.gz
    Downloading: 100%         

but those obviously won't work:

$ ./vendor/nodejs/nodejs/bin/node 
-bash: ./node: Kann die Datei nicht ausführen.

which output

With the newest version I'm getting the following output when running composer install:

which: no nodejs in (/usr/local/sbin:/usr/local/bin:/usr/bin:/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/niko/.gem/ruby/2.1.0/bin:/home/niko/npm/bin:/home/niko/.gem/ruby/2.1.0/bin:/home/niko/npm/bin)

Doesn't cause any problems and can be ignored, but still looks like an error that might confuse people.

Not working on Windows anymore

        "mouf": {
            "nodejs": {
                "version": "8.10.0",
                "forceLocal": false
            }
        }
npm WARN engine [email protected]: wanted: {"node":">=10"} (current: {"node":"v8.10.0","npm":"1.4.12"})
...
npm ERR! node -v v8.10.0
npm ERR! npm -v 1.4.12
npm ERR! code E405
npm ERR!
npm ERR! not ok code 0

                                                           
  [Mouf\NodeJsInstaller\NodeJsInstallerException]          
  An error occurred while updating NPM to latest version. 

It seems that when calling the update on npm it tries to update to a version that requires a higer version than the one installed.
node version needed: v8.10.0
npm tries to update to 7.0.6 wich requires node >=10

passthru("npm update npm", $returnCode);

Using Gulp

In your read me you suggest that with this package you can "run Gulp / Grunt tasks". However I cannot find any documentation on how to do this without installing Gulp Globally (via npm, which seems to defeat the purpose).

Any guidance would be appreciated.

Not work on Windows

Hi!

I have a problem with wrapper script - it not works correctly on my WAMP:

C:\OpenServer\domains\aviashelf\vendor\koala-framework\kwf-modernizr>C:\OpenServer\domains\aviashelf/vendor/bin/npm install
"install" is not an internal or external
command, operable program or batch file.

Node.JS and NPM installed globally.

More info here:
koala-framework/koala-framework#327

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.