LWC ग्राहक की अनुमति में कस्टम त्रुटि org: अमान्य मॉड्यूल आईडी "MY_NAMESPACE__My_Custom_Permission" प्रकार "customPermission" के लिए

Aug 17 2020

मैं लाइटनिंग वेब घटक में एक कस्टम अनुमति का उपयोग करने की कोशिश कर रहा हूं।

यह मेरे प्रबंधित पैकेज डेवलपमेंट org में 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: अमान्य मॉड्यूल आईडी "MY_NAMESPACE__My_Custom_Permission" प्रकार "customPermission" के लिए। फ़ाइल "myLwcComponent.js" में नाम "MY_NAMESPACE" का स्पष्ट उपयोग निषिद्ध है। इसके बजाय डिफ़ॉल्ट नामस्थान "c" का उपयोग करें।

किसी भी विचार कैसे यह काम पाने के लिए?

यह स्पष्ट रूप से सब्सक्राइबर org में मेरे कस्टम अनुमति के नाम स्थान की कोशिश कर रहा है।

प्रबंधित पैकेज डेवलपमेंट ऑर्गन में, मैंने डिफ़ॉल्ट नामस्थान '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

जवाब

1 sfdcfox Aug 17 2020 at 20:23

यह उन मामलों में से एक है जहां आप स्क्रैच ऑर्ग का उपयोग करने के लिए हैं। अपने देव हब के साथ अपना नाम स्थान पंजीकृत करें , और डेवलपर संस्करण org के बजाय विकास के लिए इसका उपयोग करें। c__permissionअंकन का उपयोग करें , और सब कुछ ठीक काम करना चाहिए। मुझे यह निराशा होती है कि कोड नामांकित और गैर-नामांकित orgs के बीच कोड पोर्टेबल नहीं है, हालांकि मैं पूरी तरह से आश्चर्यचकित नहीं हूं, क्योंकि सेल्सफोर्स के इतिहास में सभी नामस्थानों के साथ कई मुद्दे हैं। स्क्रैच ऑर्ग्स का उपयोग किसी भी और सभी नाम स्थान विकास के मुद्दों से बचने का मुख्य तरीका है, क्योंकि आपको कभी भी एक गैर-नामांकित विकास संस्करण के साथ सौदा नहीं करना है।