Release Note 18.2 (2024โ03โ28)
https://github.com/nrwl/nx/releases/tag/18.2.0
[Angular] Support Angular 17.3
As usual, Nx is up to date with the latest version of Angular!
[Core] Scope Nx Plugin Project Crystal ๐๐๐
    
       feat(core): add ability to scope plugins
      
      #22379
      
        feat(core): add ability to scope plugins
      
      #22379
    
  
  There is no way to users to filter where plugins are applied. Only by the plugin author.
This means that errors thrown make the plugin unusable and more modifications to the project graph are made than desired.
Plugins can be scoped via include and exclude which are both lists of file patterns.
{
  plugins: [
    {
      plugin: '@nx/jest/plugin',
      include: ['packages/**/*'],
      exclude: ['e2e/**/*']
    }
  ]
}
This will scope running the plugin to processing only those config files.
Fixes #
In my previous article, โโ Target Exclusions in Nx Project Crystal,โ I introduced alternatives for excluding certain projects from specific plugins.
For instance, you might not want a test target in an e2e project simply because thereโs a jest.config.ts file present.
Now, an official method is available for excluding or including plugins for a specific project. Within your nx.json file, you can now specify the exclude or include options:
{
  "plugins": [
    {
      "plugin": "@nx/jest/plugin",
      "options": {
        "targetName": "test",
        "exclude": ["my-lib-e2e/**/*"]
      }
    }
  ]
}
[Gradle] New Gradle Integration
You can now leverage the new Gradle integration with the @nx/gradle:init generator. To initialize, simply run:
nx g @nx/gradle:init
This initialization will also add the @nx/gradle/plugin to your nx.json:
{
  "plugins": [
    {
      "plugin": "@nx/gradle/plugin",
      "options": {
        "testTargetName": "build",
        "classesTargetName": "test",
        "buildTargetName": "classes"
      }
    }
  ]
}
This plugin will:
- Integrate your Gradle projects into the Nx Dependency Tree by scanning all Gradle configurations. 
- Discover your projects by scanning the Gradle configuration matching the pattern - **/build.{gradle.kts,gradle}, and then assign the targets- build,- test, and- classes.
  
  
  [Cypress] New target open-cypress is added by the @nx/cypress/plugin
    
       feat(testing): infer open-cypress task
      
      #22556
      
        feat(testing): infer open-cypress task
      
      #22556
    
  
  Infer a new task named open-cypress, which runs the command cypress open from the project root.
Fixes #22389
If youโre working with Nx Project Crystal and have a Cypress project that includes a cypress.config.* file, the @nx/cypress/plugin will automatically add related targets to your project.
A new target, open-cypress, will now be added to your project configuration:
"open-cypress": {
  "command": "cypress open",
  "options": {
    "cwd": ".",
  },
You have the flexibility to use a different name by specifying the new plugin option openTargetName:
{
  "plugins": [
    {
      "plugin": "@nx/cypress/plugin",
      "options": {
        "targetName": "e2e",
        "ciTargetName": "e2e-ci",
        "componentTestingTargetName": "component-test",
        "openTargetName": "open-cypress" // <-- NEW
      }
    }
  ]
}
Looking for some help? ๐ค
**Connect with me on Twitter โข LinkedIn โข Github
 
 
              
 
         blog.angular.io
        blog.angular.io
       
         
    
Top comments (0)