jsverse / transloco

🚀 😍 The internationalization (i18n) library for Angular
https://jsverse.github.io/transloco/
MIT License
2.02k stars 195 forks source link

Bug(transloco-scoped-libs): transloco-scope-libs script failing #515

Closed bjornharvold closed 2 years ago

bjornharvold commented 3 years ago

Is there an existing issue for this?

Which Transloco package(s) are the source of the bug?

Scoped Libs

Is this a regression?

Yes

Current behavior

Since upgrading to v3.0.2 / v3.0.0 of transloco and transloco-scoped-libs respectively, when I execute the transloco-scoped-libs command, I get this error:

> iko@13.11.3 transloco:extract-scoped-libs /Users/crash/git/iko-travel-spa
> transloco-scoped-libs

/Users/crash/git/iko-travel-spa/node_modules/@ngneat/transloco-scoped-libs/src/index.js:11
const { watch, ['skip-gitignore']: skipGitIgnoreUpdate } = command_line_args_1.default(optionDefinitions);
                                                                                      ^

TypeError: command_line_args_1.default is not a function
    at Object.<anonymous> (/Users/crash/git/iko-travel-spa/node_modules/@ngneat/transloco-scoped-libs/src/index.js:11:87)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47

Expected behavior

It should be copying the resources to its respective destinations as it did in the versions prior to 3.x.

Please provide a link to a minimal reproduction of the bug

https://github.com/bjornharvold/transloco-issue-515

Transloco Config

{
      provide: TRANSLOCO_CONFIG,
      useValue: {
        availableLangs: [{ id: 'en', label: 'English' }],
        reRenderOnLangChange: false,
        defaultLang: 'en',
        fallbackLang: 'en',
        prodMode: environment.production,
        scopeStrategy: 'shared'
      } as TranslocoConfig
    }

Please provide the environment you discovered this bug in

Transloco: 3.0.2
Angular: 12.2.9
Node: 14.5
Package Manager: yarn
OS: Mac OS

Browser

NA

Additional context

No response

I would like to make a pull request for this bug

No

EndyKaufman commented 3 years ago

i use this versions, and all work correct

"@ngneat/transloco-keys-manager": "^2.7.5",
"@ngneat/transloco-scoped-libs": "^1.2.2",
bjornharvold commented 3 years ago

Yes correct, previous versions work fine. Submitting a regression bug here.

shaharkazaz commented 3 years ago

@bjornharvold I'll take a look at it when I get the chance 👍 @EndyKaufman I recommend upgrading to the keys manager v3+, a lot of work was done there on template extractions and it's much more accurate and stable.

burl21 commented 2 years ago

I have the same error with transloco-optimize.

transloco-optimize dist/Name/assets/i18n

node_modules/@ngneat/transloco-optimize/src/index.js:10
const { dist, commentsKey } = command_line_args_1.default(optionDefinitions);
                                                                                                  ^

TypeError: command_line_args_1.default is not a function
    at Object.<anonymous> (node_modules/@ngneat/transloco-optimize/src/index.js:10:58)
    at Module._compile (internal/modules/cjs/loader.js:1068:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
    at Module.load (internal/modules/cjs/loader.js:933:32)
    at Function.Module._load (internal/modules/cjs/loader.js:774:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47

"@ngneat/transloco-optimize": "^3.0.0", "@ngneat/transloco": "^3.0.6",

shaharkazaz commented 2 years ago

@burl21 @bjornharvold Can you please verify the new versions? 🙂

bjornharvold commented 2 years ago

Hi @shaharkazaz

v3.0.1 not working

Here my transloco.config.js

module.exports = {
  scopedLibs: [
    {
      src: './libs/analytics/feature-line-chart-list',
      dist: [
        './apps/administration/src/assets/i18n',
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n',
      ]
    },
    {
      src: './libs/inventory/ui-activity-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-add-on-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-attraction-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking/ui-grid',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking/feature-booking-manager-modal',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking/ui-booking-list',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking/ui-booking-single-view',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking/ui-booking',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/bucket-list/ui-like-button',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/bucket-list/feature-bucket-list-modal',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/property/ui-cancellation-policy-read-only',
      dist: [
        './apps/hotel-booking-engine/src/assets/i18n',
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/booking-engine/src/assets/i18n',
        './apps/payment-widget/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/company/ui-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/authentication/ui-account-button',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/subscription/ui-credit-card-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/shared/ui-days-of-week',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/shared/ui-date-range-picker',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/lookup/ui-destination-lookup-selector',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-configuration-card',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-create-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-details-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-domains-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-integration-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/engine/ui-keys-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/shared/ui-failure-box',
      dist: [
        './apps/administration/src/assets/i18n',
        './apps/corporate/src/assets/i18n',
        './apps/hotel-booking-engine/src/assets/i18n',
        './apps/booking-engine/src/assets/i18n',
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/single-sign-on/src/assets/i18n',
        './apps/travel-agent/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/geo-name/ui-lookup',
      dist: [
        './apps/extranet/src/assets/i18n'
      ]
    },
    {
      src: './libs/property/ui-hotel-rating-carousel',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/sandbox/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-hotel-best-price-card',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/sandbox/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/property/ui-unavailable-card',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/subscription/ui-invoice-list',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/google-maps/ui-map-location',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/sandbox/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-meeting-room-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-package-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-place-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/shared/ui-promotion-form',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/developer/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-guest-room-best-price-card',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/sandbox/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-restaurant-best-price-card',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/authentication/ui-single-sign-on-modal',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/inventory/ui-spa-best-price-card',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/sandbox/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/profile/feature-profile-modal',
      dist: [
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/booking-engine/feature-profile',
      dist: [
        './apps/booking-engine/src/assets/i18n'
      ]
    },
    {
      src: './libs/subscription/ui-stored-credit-card',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/seller/ui-seller-url-form',
      dist: [
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/seller/ui-seller-inventory-item-form',
      dist: [
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/seller/ui-seller-inventory-list-form',
      dist: [
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/seller/ui-seller-inventory-ranked-list-form',
      dist: [
        './apps/seller/src/assets/i18n'
      ]
    },
    {
      src: './libs/shared/ui-success-box',
      dist: [
        './apps/administration/src/assets/i18n',
        './apps/corporate/src/assets/i18n',
        './apps/hotel-booking-engine/src/assets/i18n',
        './apps/booking-engine/src/assets/i18n',
        './apps/developer/src/assets/i18n',
        './apps/extranet/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/single-sign-on/src/assets/i18n',
        './apps/travel-agent/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/user-session/ui-itinerary-button',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/user-session/ui-itinerary-form-modal',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/user-session/ui-itinerary-read-only',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/user-session/ui-itinerary',
      dist: [
        './apps/booking-engine/src/assets/i18n',
        './apps/hotel-booking-engine/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    },
    {
      src: './libs/user-session/ui-room-configuration-form',
      dist: [
        './apps/developer/src/assets/i18n',
        './apps/booking-engine/src/assets/i18n',
        './apps/seller/src/assets/i18n',
        './apps/web-components/src/assets/i18n'
      ]
    }
  ]
};

This is the error I get when running the command:

Please add "scopedLibs" configuration in transloco.config.js file. 
  e.g:
  module.exports = {
    scopedLibs: [{
      src: './projects/core',
      dist: ['./projects/spa/src/assets/i18n', './src/assets/i18n/']
    }]
  };

As you can see above, I have done that so I don't know what it's complaining about.

shaharkazaz commented 2 years ago

@bjornharvold Can you please try v3.0.3? 🙂

bjornharvold commented 2 years ago

Hi @shaharkazaz

v3.0.3 seems to have fixed it. What was the issue?

shaharkazaz commented 2 years ago

@bjornharvold several issues, also related to the transloco-utils, you are welcome to look at the latest commits.