मेरी कोणीय 2 एप्लिकेशन में (SystemJS मॉड्यूल प्रबंधक, टाइपप्रति पटकथा भाषा के रूप में) मैं एन्क्रिप्शन को संभालने के लिए एक NPM मॉड्यूल आयात करने की आवश्यकता है (या तो क्रिप्टो-जे एस, फोर्ज-जे एस या किसी अन्य उद्देश्य की सेवा)कोणीय 2 में गैर-कोर एनपीएम मॉड्यूल कैसे आयात करें (एक एन्क्रिप्शन पुस्तकालय का उपयोग करने के लिए)?
मामले में CryptoJS की, के माध्यम से इसे स्थापित करने के बाद NPM स्थापित * मैं जोड़कर की कोशिश की:
में<script src="node_modules/crypto-js/crypto-js.js"></script>
सूचकांक: एचटीएमएल।
मेरी सेवा में (एप्लिकेशन/सेवाओं/मेरी-service.service.ts) मैं इसे माध्यम से
import {CryptoJS} from 'node_modules/crypto-js/crypto-js.js' // or /aes.js --> same issue
आयात हालांकि आयात उदाहरण के लिए के रूप में सही ढंग से काम नहीं करता है
console.log(CryptoJS);
प्रिंट अपरिभाषित।
मैं भी द्वारा
import {CryptoJS} from 'cryptoJs';
मेरी सेवा में
System.config({
// ...
map: {
CryptoJS
}
}
में मॉड्यूल पथ जोड़ने और इसे आयात करने के लिए जब मैं यकीन नहीं है की कोशिश की क्या मैं वास्तव में SystemJS config में क्या रखना चाहिए , मैंने कोशिश किए गए समाधानों में से कोई भी काम नहीं किया।
संपादित मैं भी कोशिश की ...
// import ... as to overcome no default export
import * as CryptoJS from 'node_modules/crypto-js/crypto-js.js';
लेकिन फिर
console.log(CryptoJS.);
कोई एईएस/जो कुछ भी विधि (अपने संपादक आमतौर पर जो तरीकों मैं स्वत: पूर्ण करने के माध्यम से इस्तेमाल कर सकते हैं सलाह) देता है
EDIT 2 अब थियरी और पियरेडुक योगदान के लिए धन्यवाद यह स्पष्ट था टी टाइपिंग और मॉड्यूल आयात अनलिंक अवधारणाएं हैं।
हालांकि उनमें से कोई भी काम नहीं कर रहा है। तब मैं typings/main.d को
/// <reference path="cryptojs/cryptojs.d.ts"/>
जोड़ा
मैं CryptoJS typings file डाउनलोड किया है, typings में रख/cryptojs/cryptojs.d.ts
: यह मैं क्या किया है है।ts
तब मैं SystemJS के मानचित्र config में cryptojs कहा:
cryptojs: "node_modules/crypto-js/crypto-js.js"
अंत में मैं जहाँ तक मैं वहाँ 2 मुद्दे हैं देख
import CryptoJS from 'cryptojs'
से मेरी सेवा में cryptojs आयात करने की कोशिश की:
- टाइपिंग लोड नहीं होते हैं क्योंकि जब मैं मॉड्यूल आयात करने का प्रयास करता हूं तो कोई स्वतः पूर्ण नहीं होता है (मैं भी कोणीय 2 ऐप को पुनरारंभ करने का प्रयास किया)। शायद मुझे समझ में नहीं आया कि बाहरी टाइपिंग कैसे आयात करें?
- मॉड्यूल वैसे भी लोड नहीं है, मैं देख सकता हूँ कि console.log द्वारा (cryptojs) (कुछ भी नहीं, मुद्रित भी अपरिभाषित नहीं है, संभावना नहीं मेरे पिछले प्रयास)
संपादित 3
अंत में मुझे थियरी और पियरेडुक सलाह के लिए धन्यवाद काम करने का धन्यवाद मिला (यकीन नहीं है कि पहले स्थान पर क्या गलत हुआ)। हालांकि मुझे अभी भी टाइपिंग के साथ समस्याएं हैं।
के बावजूद मैं अपने सेवा में
/// <reference path="../../typings/cryptojs/cryptojs.d.ts"/>
सीधे शब्दों में कहें, जब मैं लिखने
import CryptoJS from 'cryptojs';
सिर्फ इतना है कि रेखा के नीचे, मुझे कोई स्वतः पूर्ण हो जाते हैं और जब मैं NPM शुरू कर आरंभ कोणीय 2 एप्लिकेशन; मैं निम्नलिखित त्रुटि मिलती है और एप्लिकेशन को शुरू नहीं करता है
app/services/user.service.ts(6,22): error TS2307: Cannot find module 'cryptojs'.
नोट: मैं (किसी भी आयात के बिना) SystemJS config को cryptojs जोड़ते हैं (लेकिन नहीं एक) और फिर लिखने
console.log(CryptoJS.AES.encrypt('my message', 'secret key123').toString());
यह सिर्फ काम करता है लेकिन मैं टाइपिंग + आयात मुद्दों को हल करना चाहता हूं।
अपनी टाइपिंग में [क्रिप्टोजेएस निश्चित रूप से टाइप किया गया] [https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/cryptojs/cryptojs.d.ts) जोड़ें और 'क्रिप्टो-जेएसजेएस' को अपने ' index.html' और आपको जाने के लिए अच्छा होना चाहिए। अपनी बूटस्ट्रैप फ़ाइल – PierreDuc
पर '/// <संदर्भ पथ = "टाइपिंग/क्रिप्टोज/cryptojs.d.ts" /> 'जोड़ने के लिए मत भूलना, यहां तक कि कोई भी उत्तर आज तक नवीनतम कोणीय संस्करण के लिए काम कर रहा है? –