@loopin/shared
v1.8.56
Published
Configurations for white-label Loopin Omni
Downloads
123
Keywords
Readme
Shared
Configurations for white-label Loopin Knowledge.
It uses npm, TypeScript compiler, Jest, webpack, ESLint, and Prettier. The production files include CommonJS, ES Modules, UMD version and TypeScript declaration files.
Development
Set up tools and environment
You need to have Node.js installed. Node includes npm as its default package manager.
Open the whole package folder with a good code editor, preferably Visual Studio Code. Consider installing VS Code extensions ES Lint and Prettier.
In the VS Code top menu: Terminal -> New Terminal
Install dependencies
Install dependencies with npm:
npm i
Write your code
Make necessary changes in package.json (name, version, description, keywords, author, homepage and other URLs).
Write your code in src folder, and unit test in test folder, replacing the original files there.
Change code linting and formatting settings in .prettierrc.js if you want.
Test
Test your code with Jest framework:
npm run test
Build
Build production (distribution) files in your dist folder:
npm run build
It generates CommonJS (in dist/cjs folder), ES Modules (in dist/esm folder), bundled and minified UMD (in dist/umd folder), as well as TypeScript declaration files (in dist/types folder).
Try it before publishing
Run:
npm link
npm link will create a symlink in the global folder, which may be {prefix}/lib/node_modules/shared or C:\Users<username>\AppData\Roaming\npm\node_modules\shared.
Create an empty folder elsewhere, you don't even need to npm init
(to generate package.json). Open the folder with VS Code, open a terminal and just run:
npm link shared
This will create a symbolic link from globally-installed shared to node_modules/ of the current folder.
You can then create a, for example, testnum.ts file with the content:
import { Num } from 'shared'
console.log(new Num(5).add(new Num(6)).val() === 11)
If you don't see any linting errors in VS Code, if you put your mouse cursor over Num
and see its type, then it's all good.
Whenever you want to uninstall the globally-installed shared and remove the symlink in the global folder, run:
npm uninstall shared -g
Prepare to publish
Publishing to npm
This package is configured to use GitHub Actions CI/CD to automate the npm publishing process.
The example package has automated tests and upload (publishing) already set up with GitHub Actions:
- Ensure you have bumped the package version number in
package.json
. - Make a pull request, get it reviewed and merged.
For npm registry: you can unpublish a version or the whole package but can never re-publish the same version under the same name.
If you want to modify the description / README on the npm package page, you have to publish a new version.
Notes
- It uses npm but you can easily switch to yarn, of course (remember to change all "npm" in
scripts
in the file package.json)- Whether you use npm as your package manager ≠ Whether you can publish to the npm registry
- Works fine in VS Code. In my configuration .eslintrc and .prettierrc cooperate perfectly
- See
scripts
in package.json for other predefined script commands