Replies: 13 comments 20 replies
-
TL;DR: Move eslint config ▶ spfx-web-build-rigSince we now have a build configuration refactored into a rig, with its own configurations for things like:
... how about new SPFx projects use the same approach for ./.eslintrc.js? proposal ▶ move ESLint config to SPFx rig
benefits
|
Beta Was this translation helpful? Give feedback.
-
|
I noticed hot update not working because webpack serve tries to connect to port 8080. There's also some error spam about it in the console. I could fix it by adding a spfx-customize-webpack.js to the config folder with the following content: |
Beta Was this translation helpful? Give feedback.
-
|
The default README should have it's Microsoft 365 tenant link updated to not include the language code. It's currently: - [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)It'd be better if it were: - [Microsoft 365 tenant](https://docs.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant)Ideally, it would be an aka.ms link pointed at https://learn.microsoft.com/sharepoint/dev/spfx/set-up-your-developer-tenant |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
What is the
So, what's this command trying to do and how is it different than I think we need better guidance on these. Having a script called |
Beta Was this translation helpful? Give feedback.
-
|
I'm probably missing it, but looking at the documentation, the "Set up development environment" page (https://learn.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment) has all of the legacy instructions with no mention of Heft. The Heft toolchain section does not talk about setting up the environment either. Is there an "unpublished" update to that page? |
Beta Was this translation helpful? Give feedback.
-
|
Not sure how I just noticed this, but was it intentional for v1.22 to drop adding the ./.vsconfig/launch.json VSCode launch config file? |
Beta Was this translation helpful? Give feedback.
-
When in debug mode, resizing the window and testing for responsive design results in the following error. It must come directly from SharePoint or SPFx, since I don't and won't use ResizeObserver. |
Beta Was this translation helpful? Give feedback.
-
|
Sourcemap for Sass is a huge bummer. It finally worked in SPFx, but HEFT ripped it off. 🥲 My personal recommendation is to wait until 1.23. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
I appreciate this might be considered off-topic here, but why in 2025 is the |
Beta Was this translation helpful? Give feedback.
-
|
Naming conventions for NPM scripts should change before launch. I work on many open source projects, and a common pattern is that the scripts don't use hyphens, which gives the npm scripts a clearer structure: Instead of this: {
//...
"scripts": {
"build": "heft build",
"test": "heft test",
"test-only": "heft run --only test --",
"clean": "heft clean",
"deploy": "heft dev-deploy",
"start": "heft start --clean",
"build-watch": "heft build --lite",
"package-solution": "heft package-solution",
"deploy-azure-storage": "heft deploy-azure-storage",
"eject-webpack": "heft eject-webpack",
"trust-dev-cert": "heft trust-dev-cert",
"untrust-dev-cert": "heft untrust-dev-cert",
"lint": "eslint ./src --ext .ts,.tsx"
},
//..
}
The ideal script pattern looks like this: "scripts": {
// Build
"build": "heft build",
"build:watch": "heft build --lite",
// Tests
"test": "heft test",
"test:only": "heft run --only test --",
// Cleaning
"clean": "heft clean",
// Deployment
"deploy": "heft dev-deploy",
"deploy:azure-storage": "heft deploy-azure-storage",
// Webpack tools
"webpack:eject": "heft eject-webpack",
// Dev certificates
"dev-cert:trust": "heft trust-dev-cert",
"dev-cert:untrust": "heft untrust-dev-cert",
// Packaging
"package:solution": "heft package-solution",
// Linting
// Lint all
"lint": "npm-run-all lint:*",
// regular liniting
"lint:ts": "eslint ./src --ext .ts,.tsx",
"lint:css": "stylelint \"src/**/*.{css,scss}\"",
// lint and fix
// fix all
"lint:fix": "npm-run-all lint:js:fix lint:css:fix",
// fix individual
"lint:js:fix": "eslint ./src --ext .ts,.tsx --fix",
"lint:css:fix": "stylelint \"src/**/*.{css,scss}\" --fix",
// Start local
"start": "heft start --clean"
}Right now, the npm run commands are confusing and not the best practice, from my point of view. # Execute all lint commands
npm-run-all lint:*or like so: # Execute all lint commands
npm run lint:fixJust a small change, but pretty common in the NodeJS development world. Also, since hyphens and double hyphens are used for command-line options, you have a clear distinction. |
Beta Was this translation helpful? Give feedback.








Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Please use this post as an aggregated discussion place for ideas and feedback that don't necessarily warrant an Issue ticket.
Changes in the RC
lib-commonjsbuild output, and switch thelib/back to ESM (to support webpack chunking). Thelib-commonjsexists as a target forjesttests.typescriptversion is overwritten during eject.@rushstack/heftpeer dependency issue.Other notes
Prior feedback posts:
Beta Was this translation helpful? Give feedback.
All reactions