구독자 조직의 LWC 사용자 지정 권한 오류 : "customPermission"유형에 대한 모듈 ID "MY_NAMESPACE__My_Custom_Permission"이 잘못되었습니다.
Lightning 웹 구성 요소에서 사용자 지정 권한에 액세스하려고합니다.
이것은 내 관리 패키지 개발 조직의 js 코드입니다.
import { LightningElement } from 'lwc';
import hasCustomPermission from '@salesforce/customPermission/My_Custom_Permission';
export default class MyLwcComponent extends LightningElement {
get isCustomPermissionEnabled() {
return hasCustomPermission;
{
}
이 코드는 개발 조직에서 잘 작동하며 My_Custom_Permission을 올바르게 제공합니다.
관리 패키지를 릴리스하고 구독자 조직에 설치하면 다음 오류가 발생합니다.
이 페이지에 오류가 있습니다. 새로 고쳐야 할 수도 있습니다. 컴파일 실패 myLwcComponent.js : 0,0 : LWC1504 : "customPermission"유형에 대한 모듈 ID "MY_NAMESPACE__My_Custom_Permission"이 잘못되었습니다. "myLwcComponent.js"파일에서 "MY_NAMESPACE"네임 스페이스를 명시 적으로 사용하는 것은 금지됩니다. 대신 기본 네임 스페이스 "c"를 사용하십시오.
이 작업을 수행하는 방법을 아십니까?
분명히 구독자 조직에서 내 사용자 지정 권한의 네임 스페이스를 지정하려고합니다.
관리 형 패키지 개발 조직에서 기본 네임 스페이스 'c'와 내 네임 스페이스 'MY_NAMESPACE'를 모두 사용자 지정 권한 접두사로 지정하려고했지만 오류가 발생합니다.
예 :
에 대한 import hasCustomPermission from '@salesforce/customPermission/MY_NAMESPACE__My_Custom_Permission';
오류: LWC1504: Invalid module id "MY_NAMESPACE__My_Custom_Permission" for type "customPermission". Explicit use of namespace "MY_NAMESPACE" in file "myLwcComponent.js" is prohibited. Use default namespace "c" instead.
예 :
에 대한 import hasCustomPermission from '@salesforce/customPermission/c__My_Custom_Permission';
오류: Invalid reference c__My_Custom_Permission of type customPermission in file myLwcComponent.js
답변
이것은 스크래치 조직을 사용하려는 경우 중 하나입니다. 개발 허브에 네임 스페이스를 등록 하고 Developer Edition 조직 대신 개발에 사용합니다. c__permission
표기법을 사용하면 모든 것이 잘 작동합니다. Salesforce의 역사 전체에 걸쳐 네임 스페이스에 대한 수많은 문제가 있었기 때문에 완전히 놀랍지는 않지만 네임 스페이스가있는 조직과 네임 스페이스가없는 조직간에 코드를 이식 할 수 없다는 점이 실망 스럽습니다. Scratch Orgs를 사용하는 것은 네임 스페이스가 아닌 Development Edition을 다시 다룰 필요가 없기 때문에 모든 네임 스페이스 개발 문제를 피하는 주요 방법입니다.