node package manager


Hello World Emo

NPM version license

A hello world npm module whose real purpose is to experiment a 'modern' (typescript / ES6) module declaration and its consumption by various environments, including legacy.

This is an "emo" version, in reference to this article: JavaScript Modules: Welcome to My Emo Hellscape.


npm i --save hello-world-emo

Then in your code:

  • node 6+ : const { hello } = require('hello-world-emo')
  • node stable (4): const hello = require('hello-world-emo').hello
  • node legacy (<4): var hello = require('hello-world-emo/dist/index.node-legacy').hello
  • ES2015/ES6: import { hello } from 'hello-world-emo'
    • a "jsnext" entry is provided in package.json for rollup users, pointing to ES6 code
  • typescript: import { hello } from 'hello-world-emo'
  • browser
    • TODO


hello()           --> Hello, World :-(
hello('Offirmo')  --> Hello, Offirmo :-(

What did you expect ?


npm 3 is needed for installing deps.

rm -rf node_modules
nvm use 6
npm i

Node 6 is needed for tests

nvm use 6
npm run test:quick
npm run test:interactive

Then switch back to node 4 for generating

nvm use 4
npm run build

Eventually, commit and release

npm run np patch


This module is aiming at having optimal consumption by :

References :