amtrack / force-dev-tool

[DEPRECATED] Command line tool supporting the Force.com development lifecycle
MIT License
108 stars 37 forks source link

Error creating the package with LWC #215

Closed kamell closed 4 years ago

kamell commented 4 years ago

Hi, when running the following command on a src with one LWC called caseServicePanel:

git diff --no-renames 1.0.5 HEAD | force-dev-tool changeset create delta --apiVersion 46.0 -d ./publish

The following package entry is created:

    <types>
        <members>caseServicePanel</members>
        <members>lwc</members>
        <name>LightningComponentBundle</name>
    </types>

Notice the extra line for "lwc" which causes an error in the deployment. Appreciate any help on this! thanks,

amtrack commented 4 years ago

@kamell I've formatted your package.xml for better readability (Note: in Markdown multiline code snippets are best declared with 3 backticks).

I tried but cannot reproduce your issue.

For debugging, you could try to narrow down where that "lwc" components comes from.

I assume your Metadata lives in the src folder, right?

git diff --no-renames 1.0.5 HEAD -- src/lwc/caseServicePanel | force-dev-tool changeset create delta --apiVersion 46.0 -d ./publish
# and then walk upwards
git diff --no-renames 1.0.5 HEAD -- src/lwc | force-dev-tool changeset create delta --apiVersion 46.0 -d ./publish
git diff --no-renames 1.0.5 HEAD -- src | force-dev-tool changeset create delta --apiVersion 46.0 -d ./publish

Also, the output of the following command would be interesting:

git diff --no-renames 1.0.5 HEAD --name-status
kamell commented 4 years ago

Hi @amtrack , many thanks for the quick response.

running the tool on src/lwc is the one that starts creating the package.xml with that extra 'lwc' member line. There is nothing else but the caseServicePanel LWC in that folder. weird!

Regarding the output of the git diff, these are lines regarding /lwc folder (removed the rest for clarity):

A       src/lwc/.eslintrc.json
A       src/lwc/caseServicePanel/caseServicePanel.html
A       src/lwc/caseServicePanel/caseServicePanel.js
A       src/lwc/caseServicePanel/caseServicePanel.js-meta.xml
A       src/lwc/jsconfig.json

Many thanks again!

amtrack commented 4 years ago

@kamell Great to hear!

I suspect that src/lwc/jsconfig.json (and src/lwc/.eslintrc.json) are recognized as lwc components itself. Given that lwc components are based in a folder, the folder name (here: lwc) of those files is determined as the component name.

I doubt that those two files should be placed there in the old Metadata file structure, but if you want to continue working this way for other lwc components in the future, you can exclude the two files in the diff like that:

git diff --no-renames 1.0.5 HEAD -- . ':(exclude)src/lwc/*.json'
kamell commented 4 years ago

@amtrack , you were right. the exclude made the trick. Many thanks!!