Nx. Publish library with deps

Nx monorepo, build library problem

ERROR: error TS6059: File '/libs/deps1/src/lib/xxx.ts' is not under 'rootDir' 'libs/need/src'. 'rootDir' is expected to contain all source files.

Add dist folder of dependency libs to main tsconfig.json

"paths": {
  "@project/core-api": [
    "dist/libs/core-api",  <==
    "libs/core-api/src/index.ts"
  ],
  "@project/validator-api": [
    "dist/libs/validator-api",  <==
    "libs/validator-api/src/index.ts"
  ],
  "@project/demo-api": ["libs/demo-api/src/index.ts"],
  "@project/settings": ["libs/settings/src/index.ts"],
  "@project/dynamic-form": ["libs/dynamic-form/src/index.ts"],
  },

Build need library

nx run need:build --with-deps
# or
nx run-many --target=build --projects=need --with-deps
# or
ng build core-api & ng build validator-api & ng build need

Publish

cd /dist/libs/need
npm publish 

Похожие записи

+function ($) { "use strict"; }(window.jQuery);

  • объявляется IIFE (немедленно выполняемая функция-выражение)
  • в функцию передаётся объект библиотеки jQuery, которая внутри будет доступна через переменную с именем $
  • включается «строгий режим»

JS. Get query param

function getQueryParam(item) {
  var svalue = window.location.search.match(new RegExp('[\?\&]' + item + '=([^\&]*)(\&?)', 'i'));
  return svalue ? svalue[1] : svalue;
}

// /foo/bar/baz.html?lang=ru
var lang = getQueryParam('lang') || 'en';