# front-end-engineering

> How to build an engineered front-end library, combined with Github Actions, that automatically publishes to the full flow of Github and NPM

Latest version **1.0.0** (published 2022-09-02) · ISC license · 0 weekly downloads

## Install

```sh
npm install front-end-engineering
pnpm add front-end-engineering
yarn add front-end-engineering
bun add front-end-engineering
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-09-02 |
| First published | 2022-09-02 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 348 |
| Unpacked size | 35.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | jayda006 |
| Maintainers | jayda006 |

## Links

- npm: https://www.npmjs.com/package/front-end-engineering
- Repository: https://github.com/dingmochou/Front-end-engineering
- Homepage: https://github.com/dingmochou/Front-end-engineering#readme
- Issues: https://github.com/dingmochou/Front-end-engineering/issues
- npm.io page: https://npm.io/package/front-end-engineering

## Dependencies (348)

- [q](https://npm.io/package/q.md) ^1.5.1
- [co](https://npm.io/package/co.md) ^4.6.0
- [ms](https://npm.io/package/ms.md) ^2.1.2
- [yn](https://npm.io/package/yn.md) ^3.1.1
- [ajv](https://npm.io/package/ajv.md) ^6.12.6
- [arg](https://npm.io/package/arg.md) ^4.1.3
- [has](https://npm.io/package/has.md) ^1.0.3
- [ini](https://npm.io/package/ini.md) ^1.3.8
- [bser](https://npm.io/package/bser.md) ^2.1.1
- [diff](https://npm.io/package/diff.md) ^4.0.2
- [exit](https://npm.io/package/exit.md) ^0.1.2
- [glob](https://npm.io/package/glob.md) ^7.2.3
- [levn](https://npm.io/package/levn.md) ^0.4.1
- [meow](https://npm.io/package/meow.md) ^8.1.2
- [once](https://npm.io/package/once.md) ^1.4.0
- [tmpl](https://npm.io/package/tmpl.md) ^1.0.5
- [y18n](https://npm.io/package/y18n.md) ^5.0.8
- [yaml](https://npm.io/package/yaml.md) ^1.10.2
- [acorn](https://npm.io/package/acorn.md) ^8.8.0
- [chalk](https://npm.io/package/chalk.md) ^4.1.2
- [cliui](https://npm.io/package/cliui.md) ^7.0.4
- [dargs](https://npm.io/package/dargs.md) ^7.0.0
- [debug](https://npm.io/package/debug.md) ^4.3.4
- [execa](https://npm.io/package/execa.md) ^5.1.1
- [fastq](https://npm.io/package/fastq.md) ^1.13.0
- [isexe](https://npm.io/package/isexe.md) ^2.0.0
- [jsesc](https://npm.io/package/jsesc.md) ^2.5.2
- [json5](https://npm.io/package/json5.md) ^1.0.1
- [kleur](https://npm.io/package/kleur.md) ^3.0.3
- [leven](https://npm.io/package/leven.md) ^3.1.0
- [p-try](https://npm.io/package/p-try.md) ^2.2.0
- [slash](https://npm.io/package/slash.md) ^3.0.0
- [tslib](https://npm.io/package/tslib.md) ^1.14.1
- [which](https://npm.io/package/which.md) ^2.0.2
- [yargs](https://npm.io/package/yargs.md) ^17.5.1
- [arrify](https://npm.io/package/arrify.md) ^1.0.1
- [braces](https://npm.io/package/braces.md) ^3.0.2
- [dedent](https://npm.io/package/dedent.md) ^0.7.0
- [espree](https://npm.io/package/espree.md) ^9.4.0
- [expect](https://npm.io/package/expect.md) ^29.0.1
- [globby](https://npm.io/package/globby.md) ^11.1.0
- [ignore](https://npm.io/package/ignore.md) ^5.2.0
- [is-obj](https://npm.io/package/is-obj.md) ^2.0.0
- [lodash](https://npm.io/package/lodash.md) ^4.17.21
- [merge2](https://npm.io/package/merge2.md) ^1.4.1
- [redent](https://npm.io/package/redent.md) ^3.0.0
- [rimraf](https://npm.io/package/rimraf.md) ^3.0.2
- [semver](https://npm.io/package/semver.md) ^7.3.7
- [split2](https://npm.io/package/split2.md) ^3.2.2
- [uri-js](https://npm.io/package/uri-js.md) ^4.4.1
- [walker](https://npm.io/package/walker.md) ^1.0.8
- [wrappy](https://npm.io/package/wrappy.md) ^1.0.2
- [ci-info](https://npm.io/package/ci-info.md) ^3.3.2
- [deep-is](https://npm.io/package/deep-is.md) ^0.1.4
- [esprima](https://npm.io/package/esprima.md) ^4.0.1
- [esquery](https://npm.io/package/esquery.md) ^1.4.0
- [esutils](https://npm.io/package/esutils.md) ^2.0.3
- [find-up](https://npm.io/package/find-up.md) ^5.0.0
- [flatted](https://npm.io/package/flatted.md) ^3.2.7
- [gensync](https://npm.io/package/gensync.md) ^1.0.0-beta.2
- [globals](https://npm.io/package/globals.md) ^13.17.0
- [is-glob](https://npm.io/package/is-glob.md) ^4.0.3
- [js-yaml](https://npm.io/package/js-yaml.md) ^4.1.0
- [kind-of](https://npm.io/package/kind-of.md) ^6.0.3
- [map-obj](https://npm.io/package/map-obj.md) ^4.3.0
- [onetime](https://npm.io/package/onetime.md) ^5.1.2
- [p-limit](https://npm.io/package/p-limit.md) ^3.1.0
- [pirates](https://npm.io/package/pirates.md) ^4.0.5
- [pkg-dir](https://npm.io/package/pkg-dir.md) ^4.2.0
- [prompts](https://npm.io/package/prompts.md) ^2.4.2
- [regexpp](https://npm.io/package/regexpp.md) ^3.2.0
- [resolve](https://npm.io/package/resolve.md) ^1.22.1
- [reusify](https://npm.io/package/reusify.md) ^1.0.4
- [through](https://npm.io/package/through.md) ^2.3.8
- [tsutils](https://npm.io/package/tsutils.md) ^3.21.0
- [yallist](https://npm.io/package/yallist.md) ^4.0.0
- [anymatch](https://npm.io/package/anymatch.md) ^3.1.2
- [argparse](https://npm.io/package/argparse.md) ^2.0.1
- [builtins](https://npm.io/package/builtins.md) ^5.0.1
- [dir-glob](https://npm.io/package/dir-glob.md) ^3.0.1
- [doctrine](https://npm.io/package/doctrine.md) ^3.0.0
- [dot-prop](https://npm.io/package/dot-prop.md) ^5.3.0
- [emittery](https://npm.io/package/emittery.md) ^0.10.2
- [error-ex](https://npm.io/package/error-ex.md) ^1.3.2
- [escalade](https://npm.io/package/escalade.md) ^3.1.1
- [fs-extra](https://npm.io/package/fs-extra.md) ^10.1.0
- [has-flag](https://npm.io/package/has-flag.md) ^4.0.0
- [inflight](https://npm.io/package/inflight.md) ^1.0.6
- [inherits](https://npm.io/package/inherits.md) ^2.0.4
- [is-regex](https://npm.io/package/is-regex.md) ^1.1.4
- [jest-cli](https://npm.io/package/jest-cli.md) ^28.1.3
- [jsonfile](https://npm.io/package/jsonfile.md) ^6.1.0
- [make-dir](https://npm.io/package/make-dir.md) ^3.1.0
- [mimic-fn](https://npm.io/package/mimic-fn.md) ^2.1.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.6
- [p-locate](https://npm.io/package/p-locate.md) ^5.0.0
- [path-key](https://npm.io/package/path-key.md) ^3.1.1
- [punycode](https://npm.io/package/punycode.md) ^2.1.1
- [react-is](https://npm.io/package/react-is.md) ^18.2.0
- [read-pkg](https://npm.io/package/read-pkg.md) ^5.2.0
- [through2](https://npm.io/package/through2.md) ^4.0.2
- [acorn-jsx](https://npm.io/package/acorn-jsx.md) ^5.3.2
- [array-ify](https://npm.io/package/array-ify.md) ^1.0.0
- [bs-logger](https://npm.io/package/bs-logger.md) ^0.2.6
- [call-bind](https://npm.io/package/call-bind.md) ^1.0.2
- [callsites](https://npm.io/package/callsites.md) ^3.1.0
- [camelcase](https://npm.io/package/camelcase.md) ^5.3.1
- [deepmerge](https://npm.io/package/deepmerge.md) ^4.2.2
- [esrecurse](https://npm.io/package/esrecurse.md) ^4.3.0
- [fast-diff](https://npm.io/package/fast-diff.md) ^1.2.0
- [fast-glob](https://npm.io/package/fast-glob.md) ^3.2.11
- [is-bigint](https://npm.io/package/is-bigint.md) ^1.0.4
- [is-number](https://npm.io/package/is-number.md) ^7.0.0
- [is-stream](https://npm.io/package/is-stream.md) ^2.0.1
- [is-string](https://npm.io/package/is-string.md) ^1.0.7
- [is-symbol](https://npm.io/package/is-symbol.md) ^1.0.4
- [jest-diff](https://npm.io/package/jest-diff.md) ^29.0.1
- [jest-each](https://npm.io/package/jest-each.md) ^28.1.3
- [jest-mock](https://npm.io/package/jest-mock.md) ^28.1.3
- [jest-util](https://npm.io/package/jest-util.md) ^29.0.1
- [js-tokens](https://npm.io/package/js-tokens.md) ^4.0.0
- [jsonparse](https://npm.io/package/jsonparse.md) ^1.3.1
- [lru-cache](https://npm.io/package/lru-cache.md) ^6.0.0
- [makeerror](https://npm.io/package/makeerror.md) ^1.0.12
- [minimatch](https://npm.io/package/minimatch.md) ^3.1.2
- [path-type](https://npm.io/package/path-type.md) ^4.0.0
- [picomatch](https://npm.io/package/picomatch.md) ^2.3.1
- [quick-lru](https://npm.io/package/quick-lru.md) ^4.0.1
- [strip-bom](https://npm.io/package/strip-bom.md) ^3.0.0
- [type-fest](https://npm.io/package/type-fest.md) ^0.20.2
- [word-wrap](https://npm.io/package/word-wrap.md) ^1.2.3
- [wrap-ansi](https://npm.io/package/wrap-ansi.md) ^7.0.0
- [JSONStream](https://npm.io/package/JSONStream.md) ^1.3.5
- [acorn-walk](https://npm.io/package/acorn-walk.md) ^8.2.0
- [ansi-regex](https://npm.io/package/ansi-regex.md) ^5.0.1
- [babel-jest](https://npm.io/package/babel-jest.md) ^28.1.3
- [char-regex](https://npm.io/package/char-regex.md) ^1.0.2
- [color-name](https://npm.io/package/color-name.md) ^1.1.4
- [concat-map](https://npm.io/package/concat-map.md) ^0.0.1
- [decamelize](https://npm.io/package/decamelize.md) ^1.2.0
- [estraverse](https://npm.io/package/estraverse.md) ^5.3.0
- [fill-range](https://npm.io/package/fill-range.md) ^7.0.1
- [flat-cache](https://npm.io/package/flat-cache.md) ^3.0.4
- [get-stream](https://npm.io/package/get-stream.md) ^6.0.1
- [is-extglob](https://npm.io/package/is-extglob.md) ^2.1.1
- [is-weakref](https://npm.io/package/is-weakref.md) ^1.0.2
- [make-error](https://npm.io/package/make-error.md) ^1.3.6
- [micromatch](https://npm.io/package/micromatch.md) ^4.0.5
- [min-indent](https://npm.io/package/min-indent.md) ^1.0.1
- [node-int64](https://npm.io/package/node-int64.md) ^0.4.0
- [optionator](https://npm.io/package/optionator.md) ^0.9.1
- [parse-json](https://npm.io/package/parse-json.md) ^5.2.0
- [path-parse](https://npm.io/package/path-parse.md) ^1.0.7
- [picocolors](https://npm.io/package/picocolors.md) ^1.0.0
- [prelude-ls](https://npm.io/package/prelude-ls.md) ^1.2.1
- [sisteransi](https://npm.io/package/sisteransi.md) ^1.0.5
- [source-map](https://npm.io/package/source-map.md) ^0.6.1
- [sprintf-js](https://npm.io/package/sprintf-js.md) ^1.0.3
- [strip-ansi](https://npm.io/package/strip-ansi.md) ^6.0.1
- [text-table](https://npm.io/package/text-table.md) ^0.2.0
- [type-check](https://npm.io/package/type-check.md) ^0.4.0
- [ansi-styles](https://npm.io/package/ansi-styles.md) ^4.3.0
- [array-union](https://npm.io/package/array-union.md) ^2.1.0
- [buffer-from](https://npm.io/package/buffer-from.md) ^1.1.2
- [cosmiconfig](https://npm.io/package/cosmiconfig.md) ^7.0.1
- [cross-spawn](https://npm.io/package/cross-spawn.md) ^7.0.3
- [emoji-regex](https://npm.io/package/emoji-regex.md) ^8.0.0
- [es-abstract](https://npm.io/package/es-abstract.md) ^1.20.2
- [fb-watchman](https://npm.io/package/fb-watchman.md) ^2.0.1
- [fs.realpath](https://npm.io/package/fs.realpath.md) ^1.0.0
- [glob-parent](https://npm.io/package/glob-parent.md) ^6.0.2
- [global-dirs](https://npm.io/package/global-dirs.md) ^0.1.1
- [graceful-fs](https://npm.io/package/graceful-fs.md) ^4.2.10
- [has-bigints](https://npm.io/package/has-bigints.md) ^1.0.2
- [has-symbols](https://npm.io/package/has-symbols.md) ^1.0.3
- [imurmurhash](https://npm.io/package/imurmurhash.md) ^0.1.4
- [is-arrayish](https://npm.io/package/is-arrayish.md) ^0.2.1
- [is-callable](https://npm.io/package/is-callable.md) ^1.2.4
- [jest-circus](https://npm.io/package/jest-circus.md) ^28.1.3
- [jest-config](https://npm.io/package/jest-config.md) ^28.1.3
- [jest-runner](https://npm.io/package/jest-runner.md) ^28.1.3
- [jest-worker](https://npm.io/package/jest-worker.md) ^28.1.3
- [locate-path](https://npm.io/package/locate-path.md) ^6.0.0
- [object-keys](https://npm.io/package/object-keys.md) ^1.1.1
- [path-exists](https://npm.io/package/path-exists.md) ^4.0.0
- [read-pkg-up](https://npm.io/package/read-pkg-up.md) ^7.0.1
- [resolve-cwd](https://npm.io/package/resolve-cwd.md) ^3.0.0
- [safe-buffer](https://npm.io/package/safe-buffer.md) ^5.2.1
- [signal-exit](https://npm.io/package/signal-exit.md) ^3.0.7
- [stack-utils](https://npm.io/package/stack-utils.md) ^2.0.5
- [type-detect](https://npm.io/package/type-detect.md) ^4.0.8
- [yocto-queue](https://npm.io/package/yocto-queue.md) ^0.1.0
- [ansi-escapes](https://npm.io/package/ansi-escapes.md) ^4.3.2
- [browserslist](https://npm.io/package/browserslist.md) ^4.21.3
- [caniuse-lite](https://npm.io/package/caniuse-lite.md) ^1.0.30001388
- [compare-func](https://npm.io/package/compare-func.md) ^2.0.0
- [eslint-scope](https://npm.io/package/eslint-scope.md) ^7.1.1
- [eslint-utils](https://npm.io/package/eslint-utils.md) ^3.0.0
- [html-escaper](https://npm.io/package/html-escaper.md) ^2.0.2
- [import-fresh](https://npm.io/package/import-fresh.md) ^3.3.0
- [import-local](https://npm.io/package/import-local.md) ^3.1.0
- [is-plain-obj](https://npm.io/package/is-plain-obj.md) ^1.1.0
- [is-text-path](https://npm.io/package/is-text-path.md) ^1.0.1
- [jest-resolve](https://npm.io/package/jest-resolve.md) ^28.1.3
- [jest-runtime](https://npm.io/package/jest-runtime.md) ^28.1.3
- [jest-watcher](https://npm.io/package/jest-watcher.md) ^28.1.3
- [lodash.merge](https://npm.io/package/lodash.merge.md) ^4.6.2
- [merge-stream](https://npm.io/package/merge-stream.md) ^2.0.0
- [npm-run-path](https://npm.io/package/npm-run-path.md) ^4.0.1
- [resolve-from](https://npm.io/package/resolve-from.md) ^4.0.0
- [run-parallel](https://npm.io/package/run-parallel.md) ^1.2.0
- [side-channel](https://npm.io/package/side-channel.md) ^1.0.4
- [spdx-correct](https://npm.io/package/spdx-correct.md) ^3.1.1
- [string-width](https://npm.io/package/string-width.md) ^4.2.3
- [strip-indent](https://npm.io/package/strip-indent.md) ^3.0.0
- [test-exclude](https://npm.io/package/test-exclude.md) ^6.0.0
- [universalify](https://npm.io/package/universalify.md) ^2.0.0
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^20.2.9
- [color-convert](https://npm.io/package/color-convert.md) ^2.0.1
- [function-bind](https://npm.io/package/function-bind.md) ^1.1.1
- [get-intrinsic](https://npm.io/package/get-intrinsic.md) ^1.1.2
- [human-signals](https://npm.io/package/human-signals.md) ^2.1.0
- [indent-string](https://npm.io/package/indent-string.md) ^4.0.0
- [internal-slot](https://npm.io/package/internal-slot.md) ^1.0.3
- [jest-docblock](https://npm.io/package/jest-docblock.md) ^28.1.1
- [jest-get-type](https://npm.io/package/jest-get-type.md) ^29.0.0
- [jest-snapshot](https://npm.io/package/jest-snapshot.md) ^28.1.3
- [jest-validate](https://npm.io/package/jest-validate.md) ^28.1.3
- [node-releases](https://npm.io/package/node-releases.md) ^2.0.6
- [object.assign](https://npm.io/package/object.assign.md) ^4.1.4
- [object.values](https://npm.io/package/object.values.md) ^1.1.5
- [parent-module](https://npm.io/package/parent-module.md) ^1.0.1
- [pretty-format](https://npm.io/package/pretty-format.md) ^29.0.1
- [shebang-regex](https://npm.io/package/shebang-regex.md) ^3.0.0
- [string-length](https://npm.io/package/string-length.md) ^4.0.2
- [terminal-link](https://npm.io/package/terminal-link.md) ^2.1.1
- [trim-newlines](https://npm.io/package/trim-newlines.md) ^3.0.1
- [array-includes](https://npm.io/package/array-includes.md) ^3.1.5
- [balanced-match](https://npm.io/package/balanced-match.md) ^1.0.2
- [camelcase-keys](https://npm.io/package/camelcase-keys.md) ^6.2.2
- [create-require](https://npm.io/package/create-require.md) ^1.1.1
- [detect-newline](https://npm.io/package/detect-newline.md) ^3.1.0
- [diff-sequences](https://npm.io/package/diff-sequences.md) ^29.0.0
- [hard-rejection](https://npm.io/package/hard-rejection.md) ^2.1.0
- [is-core-module](https://npm.io/package/is-core-module.md) ^2.10.0
- [is-date-object](https://npm.io/package/is-date-object.md) ^1.0.5
- [jest-haste-map](https://npm.io/package/jest-haste-map.md) ^28.1.3
- [lodash.memoize](https://npm.io/package/lodash.memoize.md) ^4.1.2
- [normalize-path](https://npm.io/package/normalize-path.md) ^3.0.0
- [object-inspect](https://npm.io/package/object-inspect.md) ^1.12.2
- [resolve-global](https://npm.io/package/resolve-global.md) ^1.0.0
- [string_decoder](https://npm.io/package/string_decoder.md) ^1.3.0
- [supports-color](https://npm.io/package/supports-color.md) ^7.2.0
- [to-regex-range](https://npm.io/package/to-regex-range.md) ^5.0.1
- [tsconfig-paths](https://npm.io/package/tsconfig-paths.md) ^3.14.1
- [util-deprecate](https://npm.io/package/util-deprecate.md) ^1.0.2
- [v8-to-istanbul](https://npm.io/package/v8-to-istanbul.md) ^9.0.1
- [brace-expansion](https://npm.io/package/brace-expansion.md) ^1.1.11
- [decamelize-keys](https://npm.io/package/decamelize-keys.md) ^1.1.0
- [es-to-primitive](https://npm.io/package/es-to-primitive.md) ^1.2.1
- [fast-deep-equal](https://npm.io/package/fast-deep-equal.md) ^3.1.3
- [get-caller-file](https://npm.io/package/get-caller-file.md) ^2.0.5
- [git-raw-commits](https://npm.io/package/git-raw-commits.md) ^2.0.11
- [has-tostringtag](https://npm.io/package/has-tostringtag.md) ^1.0.0
- [hosted-git-info](https://npm.io/package/hosted-git-info.md) ^4.1.0
- [is-generator-fn](https://npm.io/package/is-generator-fn.md) ^2.1.0
- [jest-regex-util](https://npm.io/package/jest-regex-util.md) ^28.0.2
- [natural-compare](https://npm.io/package/natural-compare.md) ^1.4.0
- [queue-microtask](https://npm.io/package/queue-microtask.md) ^1.2.3
- [readable-stream](https://npm.io/package/readable-stream.md) ^3.6.0
- [resolve.exports](https://npm.io/package/resolve.exports.md) ^1.1.0
- [shebang-command](https://npm.io/package/shebang-command.md) ^2.0.0
- [spdx-exceptions](https://npm.io/package/spdx-exceptions.md) ^2.3.0
- [text-extensions](https://npm.io/package/text-extensions.md) ^1.9.0
- [unbox-primitive](https://npm.io/package/unbox-primitive.md) ^1.0.2
- [cjs-module-lexer](https://npm.io/package/cjs-module-lexer.md) ^1.2.2
- [eslint-plugin-es](https://npm.io/package/eslint-plugin-es.md) ^4.1.0
- [fast-levenshtein](https://npm.io/package/fast-levenshtein.md) ^2.0.6
- [file-entry-cache](https://npm.io/package/file-entry-cache.md) ^6.0.1
- [get-package-type](https://npm.io/package/get-package-type.md) ^0.1.0
- [is-negative-zero](https://npm.io/package/is-negative-zero.md) ^2.0.2
- [is-number-object](https://npm.io/package/is-number-object.md) ^1.0.7
- [istanbul-reports](https://npm.io/package/istanbul-reports.md) ^3.1.5
- [minimist-options](https://npm.io/package/minimist-options.md) ^4.1.0
- [path-is-absolute](https://npm.io/package/path-is-absolute.md) ^1.0.1
- [spdx-license-ids](https://npm.io/package/spdx-license-ids.md) ^3.0.12
- [babel-preset-jest](https://npm.io/package/babel-preset-jest.md) ^28.1.3
- [define-properties](https://npm.io/package/define-properties.md) ^1.1.4
- [grapheme-splitter](https://npm.io/package/grapheme-splitter.md) ^1.0.4
- [is-boolean-object](https://npm.io/package/is-boolean-object.md) ^1.1.2
- [jest-message-util](https://npm.io/package/jest-message-util.md) ^29.0.1
- [jest-pnp-resolver](https://npm.io/package/jest-pnp-resolver.md) ^1.2.2
- [lines-and-columns](https://npm.io/package/lines-and-columns.md) ^1.2.4
- [require-directory](https://npm.io/package/require-directory.md) ^2.1.1
- [write-file-atomic](https://npm.io/package/write-file-atomic.md) ^4.0.2
- [convert-source-map](https://npm.io/package/convert-source-map.md) ^1.8.0
- [jest-changed-files](https://npm.io/package/jest-changed-files.md) ^28.1.3
- [jest-leak-detector](https://npm.io/package/jest-leak-detector.md) ^28.1.3
- [jest-matcher-utils](https://npm.io/package/jest-matcher-utils.md) ^29.0.1
- [source-map-support](https://npm.io/package/source-map-support.md) ^0.5.13
- [to-fast-properties](https://npm.io/package/to-fast-properties.md) ^2.0.0
- [collect-v8-coverage](https://npm.io/package/collect-v8-coverage.md) ^1.0.1
- [es-shim-unscopables](https://npm.io/package/es-shim-unscopables.md) ^1.0.0
- [eslint-module-utils](https://npm.io/package/eslint-module-utils.md) ^2.7.4
- [eslint-visitor-keys](https://npm.io/package/eslint-visitor-keys.md) ^3.3.0
- [istanbul-lib-report](https://npm.io/package/istanbul-lib-report.md) ^3.0.0
- [require-from-string](https://npm.io/package/require-from-string.md) ^2.0.2
- [strip-final-newline](https://npm.io/package/strip-final-newline.md) ^2.0.0
- [strip-json-comments](https://npm.io/package/strip-json-comments.md) ^3.1.1
- [supports-hyperlinks](https://npm.io/package/supports-hyperlinks.md) ^2.2.0
- [array.prototype.flat](https://npm.io/package/array.prototype.flat.md) ^1.3.0
- [electron-to-chromium](https://npm.io/package/electron-to-chromium.md) ^1.4.240
- [escape-string-regexp](https://npm.io/package/escape-string-regexp.md) ^4.0.0
- [functions-have-names](https://npm.io/package/functions-have-names.md) ^1.2.3
- [json-schema-traverse](https://npm.io/package/json-schema-traverse.md) ^0.4.1
- [v8-compile-cache-lib](https://npm.io/package/v8-compile-cache-lib.md) ^3.0.1
- [babel-plugin-istanbul](https://npm.io/package/babel-plugin-istanbul.md) ^6.1.1
- [istanbul-lib-coverage](https://npm.io/package/istanbul-lib-coverage.md) ^3.2.0
- [jest-environment-node](https://npm.io/package/jest-environment-node.md) ^28.1.3
- [spdx-expression-parse](https://npm.io/package/spdx-expression-parse.md) ^3.0.1
- [which-boxed-primitive](https://npm.io/package/which-boxed-primitive.md) ^1.0.2
- [eslint-config-standard](https://npm.io/package/eslint-config-standard.md) ^17.0.0
- [get-symbol-description](https://npm.io/package/get-symbol-description.md) ^1.0.0
- [is-shared-array-buffer](https://npm.io/package/is-shared-array-buffer.md) ^1.0.2
- [normalize-package-data](https://npm.io/package/normalize-package-data.md) ^3.0.3
- [regexp.prototype.flags](https://npm.io/package/regexp.prototype.flags.md) ^1.4.3
- [update-browserslist-db](https://npm.io/package/update-browserslist-db.md) ^1.0.6
- [babel-plugin-jest-hoist](https://npm.io/package/babel-plugin-jest-hoist.md) ^28.1.3
- [function.prototype.name](https://npm.io/package/function.prototype.name.md) ^1.1.5
- [is-fullwidth-code-point](https://npm.io/package/is-fullwidth-code-point.md) ^3.0.0
- [istanbul-lib-instrument](https://npm.io/package/istanbul-lib-instrument.md) ^5.2.0
- [prettier-linter-helpers](https://npm.io/package/prettier-linter-helpers.md) ^1.0.0
- [has-property-descriptors](https://npm.io/package/has-property-descriptors.md) ^1.0.0
- [istanbul-lib-source-maps](https://npm.io/package/istanbul-lib-source-maps.md) ^4.0.1
- [string.prototype.trimend](https://npm.io/package/string.prototype.trimend.md) ^1.0.5
- [functional-red-black-tree](https://npm.io/package/functional-red-black-tree.md) ^1.0.1
- [jest-resolve-dependencies](https://npm.io/package/jest-resolve-dependencies.md) ^28.1.3
- [fast-json-stable-stringify](https://npm.io/package/fast-json-stable-stringify.md) ^2.1.0
- [string.prototype.trimstart](https://npm.io/package/string.prototype.trimstart.md) ^1.0.5
- [conventional-commits-parser](https://npm.io/package/conventional-commits-parser.md) ^3.2.4
- [eslint-import-resolver-node](https://npm.io/package/eslint-import-resolver-node.md) ^0.3.6
- [validate-npm-package-license](https://npm.io/package/validate-npm-package-license.md) ^3.0.4
- [json-parse-even-better-errors](https://npm.io/package/json-parse-even-better-errors.md) ^2.3.1
- [conventional-changelog-angular](https://npm.io/package/conventional-changelog-angular.md) ^5.0.13
- [supports-preserve-symlinks-flag](https://npm.io/package/supports-preserve-symlinks-flag.md) ^1.0.0
- [babel-preset-current-node-syntax](https://npm.io/package/babel-preset-current-node-syntax.md) ^1.0.1
- [json-stable-stringify-without-jsonify](https://npm.io/package/json-stable-stringify-without-jsonify.md) ^1.0.1
- [conventional-changelog-conventionalcommits](https://npm.io/package/conventional-changelog-conventionalcommits.md) ^5.0.0

## Recent versions

- 1.0.0 (latest) — 2022-09-02

## README

# Front-end-engineering

How to build an engineered front-end library, combined with Github Actions, that automatically publishes to the full flow of Github and NPM

作者：molvqingtai
链接：https://juejin.cn/post/6971812117993226248

`package.json` 生成之后，我需要添加如下配置项:

```diff
   "main": "index.js",
+  "type": "module",
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1"
   },
+  "publishConfig": {
+    "access": "public"
+  }
```

我们将项目定义为[ESM](https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules "https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Modules")规范,前端社区正逐渐向[ESM](https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules "https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Modules")标准迁移，从[Node v12.0.0](https://link.juejin.cn?target=https%3A%2F%2Fnodejs.org%2Ffr%2Fblog%2Frelease%2Fv12.0.0%2F "https://nodejs.org/fr/blog/release/v12.0.0/")开始，只要设置了 `"type": "module"`, Node 会将整个项目视为[ESM](https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FJavaScript%2FGuide%2FModules "https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Modules")规范，我们就可以直接写裸写 `import/export`。

`publishConfig.access`表示当前项目发布到[NPM](https://link.juejin.cn?target=https%3A%2F%2Fwww.npmjs.com%2F "https://www.npmjs.com/")的访问级别，它有 `restricted`和 `public`两个选项,`restricted`表示我们发布到[NPM](https://link.juejin.cn?target=https%3A%2F%2Fwww.npmjs.com%2F "https://www.npmjs.com/")上的是私有包（收费），访问级别默认为 `restricted`,因为我们是开源项目所以标记为 `public`。

---
_Source: https://npm.io/package/front-end-engineering · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
