JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6412
  • Score
    100M100P100Q141509F
  • License MIT

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pnpm-sync-dependencies-meta-injected) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    pnpm-sync-dependencies-meta-injected

    This package will solve all your problems!

    Setup

    1. Install the dependency.

      pnpm i pnpm-sync-dependencies-meta-injected -D
    2. In each of your projects that declare a dependenciesMeta.*.injected = true, add a _syncPnpm script in your package.json:

      "_syncPnpm": "pnpm sync-dependencies-meta-injected"
    3. In each of your projects that includes _syncPnpm, re-configure your project's start command to run _syncPnpm in watch mode so that you can continually work on your injected dependencies and have updates automatically re-synced as they are built.

      "start": "concurrently 'ember serve' 'pnpm _syncPnpm --watch' --names 'tests serve,tests sync deps'",

      By using concurrently, we can run our dev server as well as the _syncPnpm task in watch mode in parallel.

    If you use turborepo

    When using turborepo, we can automatically sync the injected dependencies for all tasks defined in turbo.json

    1. In your turbo.json, configure a _syncPnpm task:

      "_syncPnpm": {
        "dependsOn": ["^build"],
        "cache": false
      },

      It must not have a cache, because we need to modify the .pnpm directory in the top-level node_modules folder.

    2. In your turbo.json, configure each task that relies on ^build to also rely on _syncPnpm (no ^) -- this, combined with the above will sync the hard links that pnpm uses for dependenciesMeta.*.injected after the dependencies are built.

        "test": {
          "outputs": [],
      -   "dependsOn": ["^build"]
      +   "dependsOn": ["_syncPnpm"]
        },
      
        "build": {
          "outputs": ["dist/**"],
      -   "dependsOn": ["^build"]
      +   "dependsOn": ["_syncPnpm"]
        },
      // etc

    Debug

    Add

    DEBUG=sync-pnpm

    before the invocation.

    Example of adding to the package.json#scripts

    "_syncPnpm": "DEBUG=sync-pnpm pnpm sync-dependencies-meta-injected"

    Or on-the-fly:

    DEBUG=sync-pnpm pnpm _syncPnpm