Locate the directory root to run the project and then Install NPM:

sudo apt install npm

Initialize a project:

npm init -y

Node doesn’t have native support to run ES6. Babel is required

npm install --save @babel/core @babel/node @babel/preset-env
> core-js@3.6.4 postinstall /home/ntala/Documents/Ex_Files_Learning_Functional_Programming_JavaScript_ES6/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"

Ex_Files_Learning_Functional_Programming_JavaScript_ES6@1.0.0 /home/ntala/Documents/Ex_Files_Learning_Functional_Programming_JavaScript_ES6
├─┬ @babel/core@7.8.3 
│ ├─┬ @babel/code-frame@7.8.3 
│ │ └─┬ @babel/highlight@7.8.3 │ │   ├─┬ chalk@2.4.2 
│ │   │ ├─┬ ansi-styles@3.2.1 
│ │   │ │ └─┬ color-convert@1.9.3 
│ │   │ │   └── color-name@1.1.3 
│ │   │ ├── escape-string-regexp@1.0.5 
│ │   │ └─┬ supports-color@5.5.0 
│ │   │   └── has-flag@3.0.0 
│ │   └── js-tokens@4.0.0 
│ ├─┬ @babel/generator@7.8.3 
│ │ └── jsesc@2.5.2 
│ ├── @babel/helpers@7.8.3 
│ ├── @babel/parser@7.8.3 
│ ├── @babel/template@7.8.3 
│ ├─┬ @babel/traverse@7.8.3 
│ │ ├── @babel/helper-function-name@7.8.3 
│ │ ├── @babel/helper-split-export-declaration@7.8.3 
│ │ └── globals@11.12.0 
│ ├─┬ @babel/types@7.8.3 
│ │ ├── esutils@2.0.3 
│ │ └── to-fast-properties@2.0.0 
│ ├─┬ convert-source-map@1.7.0 
│ │ └── safe-buffer@5.1.2 
│ ├─┬ debug@4.1.1 
│ │ └── ms@2.1.2 
│ ├── gensync@1.0.0-beta.1 
│ ├─┬ json5@2.1.1 
│ │ └── minimist@1.2.0 
│ ├── lodash@4.17.15 
│ ├─┬ resolve@1.15.0 
│ │ └── path-parse@1.0.6 
│ ├── semver@5.7.1 
│ └── source-map@0.5.7 
├─┬ @babel/node@7.8.3 
│ ├─┬ @babel/register@7.8.3 
│ │ ├─┬ find-cache-dir@2.1.0 
│ │ │ ├── commondir@1.0.1 
│ │ │ └─┬ pkg-dir@3.0.0 
│ │ │   └─┬ find-up@3.0.0 
│ │ │     └─┬ locate-path@3.0.0 
│ │ │       ├─┬ p-locate@3.0.0 
│ │ │       │ └─┬ p-limit@2.2.2 
│ │ │       │   └── p-try@2.2.0 
│ │ │       └── path-exists@3.0.0 
│ │ ├─┬ make-dir@2.1.0 
│ │ │ └── pify@4.0.1 
│ │ ├─┬ pirates@4.0.1 
│ │ │ └── node-modules-regexp@1.0.0 
│ │ └─┬ source-map-support@0.5.16 
│ │   ├── buffer-from@1.1.1 
│ │   └── source-map@0.6.1 
│ ├── commander@4.1.0 
│ ├── core-js@3.6.4 
│ ├─┬ node-environment-flags@1.0.6 
│ │ └─┬ object.getownpropertydescriptors@2.1.0 
│ │   ├─┬ define-properties@1.1.3 
│ │   │ └── object-keys@1.1.1 
│ │   └─┬ es-abstract@1.17.4 
│ │     ├─┬ es-to-primitive@1.2.1 
│ │     │ ├── is-date-object@1.0.2 
│ │     │ └── is-symbol@1.0.3 
│ │     ├── function-bind@1.1.1 
│ │     ├── has@1.0.3 
│ │     ├── has-symbols@1.0.1 
│ │     ├── is-callable@1.1.5 
│ │     ├── is-regex@1.0.5 
│ │     ├── object-inspect@1.7.0 
│ │     ├── string.prototype.trimleft@2.1.1 
│ │     └── string.prototype.trimright@2.1.1 
│ ├── regenerator-runtime@0.13.3 
│ └─┬ v8flags@3.1.3 
│   └─┬ homedir-polyfill@1.0.3 
│     └── parse-passwd@1.0.0 
└─┬ @babel/preset-env@7.8.3 
  ├── @babel/compat-data@7.8.1 
  ├── @babel/helper-compilation-targets@7.8.3 
  ├── @babel/helper-module-imports@7.8.3 
  ├── @babel/helper-plugin-utils@7.8.3 
  ├─┬ @babel/plugin-proposal-async-generator-functions@7.8.3 
  │ └─┬ @babel/helper-remap-async-to-generator@7.8.3 
  │   └── @babel/helper-wrap-function@7.8.3 
  ├── @babel/plugin-proposal-dynamic-import@7.8.3 
  ├── @babel/plugin-proposal-json-strings@7.8.3 
  ├── @babel/plugin-proposal-nullish-coalescing-operator@7.8.3 
  ├── @babel/plugin-proposal-object-rest-spread@7.8.3 
  ├── @babel/plugin-proposal-optional-catch-binding@7.8.3 
  ├── @babel/plugin-proposal-optional-chaining@7.8.3 
  ├─┬ @babel/plugin-proposal-unicode-property-regex@7.8.3 
  │ └─┬ @babel/helper-create-regexp-features-plugin@7.8.3 
  │   └─┬ regexpu-core@4.6.0 
  │     ├── regenerate@1.4.0 
  │     ├── regenerate-unicode-properties@8.1.0 
  │     ├── regjsgen@0.5.1 
  │     ├─┬ regjsparser@0.6.2 
  │     │ └── jsesc@0.5.0 
  │     ├─┬ unicode-match-property-ecmascript@1.0.4 
  │     │ ├── unicode-canonical-property-names-ecmascript@1.0.4 
  │     │ └── unicode-property-aliases-ecmascript@1.0.5 
  │     └── unicode-match-property-value-ecmascript@1.1.0 
  ├── @babel/plugin-syntax-async-generators@7.8.4 
  ├── @babel/plugin-syntax-dynamic-import@7.8.3 
  ├── @babel/plugin-syntax-json-strings@7.8.3 
  ├── @babel/plugin-syntax-nullish-coalescing-operator@7.8.3 
  ├── @babel/plugin-syntax-object-rest-spread@7.8.3 
  ├── @babel/plugin-syntax-optional-catch-binding@7.8.3 
  ├── @babel/plugin-syntax-optional-chaining@7.8.3 
  ├── @babel/plugin-syntax-top-level-await@7.8.3 
  ├── @babel/plugin-transform-arrow-functions@7.8.3 
  ├── @babel/plugin-transform-async-to-generator@7.8.3 
  ├── @babel/plugin-transform-block-scoped-functions@7.8.3 
  ├── @babel/plugin-transform-block-scoping@7.8.3 
  ├─┬ @babel/plugin-transform-classes@7.8.3 
  │ ├── @babel/helper-annotate-as-pure@7.8.3 
  │ ├── @babel/helper-define-map@7.8.3 
  │ ├── @babel/helper-optimise-call-expression@7.8.3 
  │ └─┬ @babel/helper-replace-supers@7.8.3 
  │   └── @babel/helper-member-expression-to-functions@7.8.3 
  ├── @babel/plugin-transform-computed-properties@7.8.3 
  ├── @babel/plugin-transform-destructuring@7.8.3 
  ├── @babel/plugin-transform-dotall-regex@7.8.3 
  ├── @babel/plugin-transform-duplicate-keys@7.8.3 
  ├─┬ @babel/plugin-transform-exponentiation-operator@7.8.3 
  │ └─┬ @babel/helper-builder-binary-assignment-operator-visitor@7.8.3 
  │   └── @babel/helper-explode-assignable-expression@7.8.3 
  ├── @babel/plugin-transform-for-of@7.8.3 
  ├── @babel/plugin-transform-function-name@7.8.3 
  ├── @babel/plugin-transform-literals@7.8.3 
  ├── @babel/plugin-transform-member-expression-literals@7.8.3 
  ├─┬ @babel/plugin-transform-modules-amd@7.8.3 
  │ ├── @babel/helper-module-transforms@7.8.3 
  │ └─┬ babel-plugin-dynamic-import-node@2.3.0 
  │   └── object.assign@4.1.0 
  ├─┬ @babel/plugin-transform-modules-commonjs@7.8.3 
  │ └── @babel/helper-simple-access@7.8.3 
  ├─┬ @babel/plugin-transform-modules-systemjs@7.8.3 
  │ └── @babel/helper-hoist-variables@7.8.3 
  ├── @babel/plugin-transform-modules-umd@7.8.3 
  ├── @babel/plugin-transform-named-capturing-groups-regex@7.8.3 
  ├── @babel/plugin-transform-new-target@7.8.3 
  ├── @babel/plugin-transform-object-super@7.8.3 
  ├─┬ @babel/plugin-transform-parameters@7.8.3 
  │ ├── @babel/helper-call-delegate@7.8.3 
  │ └── @babel/helper-get-function-arity@7.8.3 
  ├── @babel/plugin-transform-property-literals@7.8.3 
  ├─┬ @babel/plugin-transform-regenerator@7.8.3 
  │ └─┬ regenerator-transform@0.14.1 
  │   └── private@0.1.8 
  ├── @babel/plugin-transform-reserved-words@7.8.3 
  ├── @babel/plugin-transform-shorthand-properties@7.8.3 
  ├── @babel/plugin-transform-spread@7.8.3 
  ├─┬ @babel/plugin-transform-sticky-regex@7.8.3 
  │ └── @babel/helper-regex@7.8.3 
  ├── @babel/plugin-transform-template-literals@7.8.3 
  ├── @babel/plugin-transform-typeof-symbol@7.8.3 
  ├── @babel/plugin-transform-unicode-regex@7.8.3 
  ├─┬ browserslist@4.8.5 
  │ ├── caniuse-lite@1.0.30001022 
  │ ├── electron-to-chromium@1.3.340 
  │ └─┬ node-releases@1.1.47 
  │   └── semver@6.3.0 
  ├─┬ core-js-compat@3.6.4 
  │ └── semver@7.0.0 
  ├─┬ invariant@2.2.4 
  │ └── loose-envify@1.4.0 
  └─┬ levenary@1.1.0 
    └── leven@3.1.0 

npm WARN Ex_Files_Learning_Functional_Programming_JavaScript
_ES6@1.0.0 No description
npm WARN Ex_Files_Learning_Functional_Programming_JavaScript
_ES6@1.0.0 No repository field.

“Npm install” explanation

All npm packages have a name. Some package names also have a scope. A scope follows the usual rules for package names (URL-safe characters, no leading dots or underscores). When used in package names, scopes are preceded by an @ symbol and followed by a slash, e.g.

Create a config babel file

In the same directory, create a file named “.babelrc“. and inside, write the basic default configuration.

{
    "presets":["@babel/preset-env"]
}

Run the ES6

To run the file, it needs to be specified that it is a babel-node file:

  npx babel-node hello-world.js

where “hello-world.js” is any file.

Sources: https://docs.npmjs.com/cli/install
https://www.linkedin.com/learning/learning-functional-programming-with-javascript-es6-plus/setting-up-the-project
https://docs.npmjs.com/misc/scope