2015-05-14 17 views
11

स्थानीय रूप से इंस्टॉल किए गए पैकेज के माध्यम से कैश नहीं किया जाता:ट्रैविस सीआई पर मैं वैश्विक एनपीएम पैकेज कैश कैसे करूं?

# .travis.yml 
... 
cache: 
    directories: 
    - node_modules 
... 

लेकिन यह कैसे मैं विश्व स्तर पर स्थापित कैश करते पैकेज ($ npm install -g <...>) मेरी बनाता है तेजी लाने के लिए?

उत्तर

10

इस तरह मैंने किया है:

cache: 
    directories: 
    # Replace "grunt-cli" with whatever global binary you're using 
    - $(npm config get prefix)/bin/grunt-cli 

संपादित करें:

के रूप में टिप्पणी में बताया गया, $(npm config get prefix)/bin अन्य कोड के लिए सिमलिंक शामिल हैं। यह अनचाहे है लेकिन शायद काम करेगा: $(npm config get prefix)/lib/node_modules। इसे सभी वैश्विक स्तर पर स्थापित मॉड्यूल कैश करना चाहिए।

+3

मैं अधिक समय बचाने के लिए पुनर्स्थापित करने से भी बचा रहा हूं: 'npm list -g grunt-cli --depth = 0 || npm install -g grunt-cli' –

+0

हाँ, मैं भी। यह अच्छा होगा अगर ट्रैविस सिर्फ कैश किए गए चीजों के इंस्टॉल को छोड़ देगा। अफसोस। – tandrewnichols

+1

'$ (एनपीएम कॉन्फ़िगरेशन उपसर्ग नहीं है)/bin/grunt-cli 'एक बाइनरी के लिए केवल सिम्लिंक है? कैश करने के लिए यह कैसे समझ में आता है? मैंने कैश निर्देशिकाओं में '$ (एनपीएम कॉन्फ़िगरेशन उपसर्ग प्राप्त करने के लिए) जोड़ने की कोशिश की है लेकिन ट्रैविस अभी भी बाद के निर्माण पर कैश लाने में विफल रहता है। – stefanjunker

संबंधित मुद्दे