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