Can't deploy a TypeScript LWC component to pre-release scratch org
NOTE: Logging this after discussion with Vivek Chawla in Slack.
The short version is that I've created a preview scratch org and an API v62.0 project, then I've created an LWC component with a valid .ts file instead of a .js file. When I try to deploy the project to the scratch org, I get:
$ sf project deploy start
Deploying v62.0 metadata to <redacted> using the v62.0 SOAP API.
Deploy ID: <redacted>
Status: Failed | ████████████████████████████████████████ | 1/1 Components | Errors: 1
Component Failures [1]
===================================================================================
| Type Name Problem Line:Column
| ───── ─────────── ─────────────────────────────────────────────────── ───────────
| Error tsComponent Cannot find Lightning Component Bundle tsComponent.
Note that I'm on the latest GA build of the CLI:
The same behavior occurs on the stable (@salesforce/cli/2.57.7 win32-x64 node-v20.16.0) and nightly (@salesforce/cli/2.59.5 win32-x64 node-v20.17.0) CLI builds.
System Information
CLI:
@salesforce/cli/2.59.5 win32-x64 node-v20.17.0
Plugin Version:
@oclif/plugin-autocomplete 3.2.3 (core)
@oclif/plugin-commands 4.0.14 (core)
@oclif/plugin-help 6.2.11 (core)
@oclif/plugin-not-found 3.2.20 (core)
@oclif/plugin-plugins 5.4.7 (core)
@oclif/plugin-search 1.2.8 (core)
@oclif/plugin-update 4.5.6 (core)
@oclif/plugin-version 2.2.12 (core)
@oclif/plugin-warn-if-update-available 3.1.15 (core)
@oclif/plugin-which 3.2.13 (core)
@salesforce/cli 2.59.5 (core)
apex 3.4.9 (core)
api 1.2.1 (core)
auth 3.6.56 (core)
data 3.6.5 (core)
deploy-retrieve 3.12.7 (core)
info 3.4.6 (core)
lightning-dev 1.1.1 (user)
limits 3.3.30 (core)
marketplace 1.2.25 (core)
org 4.5.8 (core)
packaging 2.8.4 (core)
schema 3.3.29 (core)
settings 2.3.19 (core)
sobject 1.4.35 (core)
source 3.5.19 (core)
telemetry 3.6.12 (core)
templates 56.3.18 (core)
trust 3.7.27 (core)
user 3.5.29 (core)
@salesforce/sfdx-scanner 4.2.0 (user)
SF ENV. VARS.
SF_AUTOUPDATE_DISABLE,true
SF_BINPATH,C:\Users\Scott\AppData\Local\sf\client\bin\sf
SF_DISABLE_AUTOUPDATE,true
SF_DISABLE_TELEMETRY,true
SF_TARGET_DEV_HUB,ic-dev-hub
SF_UPDATE_INSTRUCTIONS,Use "npm update --global @salesforce/cli" to update npm-based installations.
Windows: true
Shell: cmd.exe
Channel: stable
Diagnostics
:white_check_mark: pass - salesforcedx plugin isn’t installed :white_check_mark: pass - you don't have any linked plugins :white_check_mark: pass - [@salesforce/plugin-trust] can ping: https://registry.npmjs.org :white_check_mark: pass - [@salesforce/plugin-trust] can ping: https://registry.yarnpkg.com :white_check_mark: pass - [@salesforce/plugin-trust] can ping: https://registry.npmjs.org/ :x: warn - [@salesforce/plugin-deploy-retrieve] sourceApiVersion matches apiVersion :white_check_mark: pass - can access: https://appexchange.salesforce.com/services/data :white_check_mark: pass - can access: https://test.salesforce.com :white_check_mark: pass - can access: https://developer.salesforce.com/media/salesforce-cli/sf/channels/stable/sf-win32-x64-buildmanifest :white_check_mark: pass - using latest or latest-rc CLI version :x: fail - [@salesforce/plugin-auth] CLI supports v2 crypto :white_check_mark: pass - [@salesforce/plugin-auth] CLI using stable v1 crypto
Note that trying to push via VSCode (latest everything) fails in the exact same manner:
Thanks for creating this Scott! We will be having some conversations internally about this and will follow up
This issue has been linked to a new work item: W-16725785
Thanks, @iowillhoit. I'd be specifically interested to know whether or not it will be possible to deploy these via the CLI in the Winter '25 timeframe. That will obviously determine to what extent (if at all) I'm able to add support for TypeScript-based LWC components to IC2. I've already implemented a significant amount of IDE editor functionality, but if the transpiler step is only in the VS Code Extensions, I'd either need to know how to run the same transpiler or would have to wait until that functionality is (IMO correctly) moved into the CLI.