වැදගත් හැසිරීම් වෙනස්කම් වල සාරාංශය:
අදාළ විකල්ප මෙහි සාකච්ඡා නොකෙරේ:
devDependencies
dependenciesක්රියාත්මක කිරීමට අවශ්ය වන්නේ, devDependenciesසංවර්ධනය කිරීම සඳහා පමණි, උදා: ඒකක පරීක්ෂණ, කෝපි ස්ක්රිප්ට් සිට ජාවාස්ක්රිප්ට් සම්ප්රේෂණය, අවම කිරීම, ...
ඔබ පැකේජයක් සංවර්ධනය කිරීමට යන්නේ නම්, ඔබ එය බාගත කරන්න (උදා: හරහා git clone), එහි අඩංගු මූලයට package.jsonගොස් ධාවනය කරන්න:
npm install
ඔබට සත්ය ප්රභවයක් ඇති බැවින්, ඔබට එය සංවර්ධනය කිරීමට අවශ්ය බව පැහැදිලිය, එබැවින් පෙරනිමියෙන් dependencies(ඔබ සැබවින්ම, සංවර්ධනය සඳහා ධාවනය කළ යුතු බැවින්) සහ devDependencyපරායත්තයන් ද ස්ථාපනය කර ඇත.
කෙසේ වෙතත්, ඔබ එය භාවිතා කිරීම සඳහා පැකේජයක් ස්ථාපනය කිරීමට අවශ්ය අවසාන පරිශීලකයෙකු පමණක් නම්, ඔබ ඕනෑම නාමාවලියකින් කරනු ඇත:
npm install "$package"
එවැනි අවස්ථාවක, ඔබට සාමාන්යයෙන් සංවර්ධන පරායත්තතා අවශ්ය නොවේ, එබැවින් ඔබට පැකේජය භාවිතා කිරීමට අවශ්ය දේ ලැබෙනු ඇත : dependencies.
එවැනි අවස්ථාවකදී ඔබට සංවර්ධන පැකේජ ස්ථාපනය කිරීමට අවශ්ය නම්, ඔබට devවින්යාස කිරීමේ විකල්පය trueවිධාන රේඛාවේ සිට පහත පරිදි සැකසිය හැකිය:
npm install "$package" --dev
විකල්පය falseපෙරනිමියෙන් මෙය වඩා අඩු පොදු අවස්ථාවක් බැවින්.
තුල්ය පරායත්තතා
(3.0 ට පෙර පරීක්ෂා කර ඇත)
මුලාශ්රය: https://nodejs.org/en/blog/npm/peer-dependencies/
නිත්ය පරායත්තතාවයන් සමඟ, ඔබට පරායත්තතාවයේ බහු සංස්කරණ තිබිය හැකිය: එය හුදෙක් පරායත්තතාවයේ ස්ථාපනය කර ඇත node_modules.
නම් උදා dependency1සහ dependency2දෙකම මත රඳා පවතී dependency3මෙම ව්යාපෘතිය ගසක් වගේ ඇත විට විවිධ ප්රභේද දී:
root/node_modules/
                 |
                 +- dependency1/node_modules/
                 |                          |
                 |                          +- dependency3 v1.0/
                 |
                 |
                 +- dependency2/node_modules/
                                            |
                                            +- dependency3 v2.0/
කෙසේ වෙතත්, ප්ලගීන යනු සාමාන්යයෙන් වෙනත් පැකේජයක් අවශ්ය නොවන පැකේජ වන අතර එය මෙම සන්දර්භය තුළ සත්කාරක ලෙස හැඳින්වේ . වෙනුවට:
- ප්ලගීන ධාරකයට අවශ්ය වේ
- ප්ලගීන මඟින් ධාරකයා සොයා ගැනීමට බලාපොරොත්තු වන සම්මත අතුරු මුහුණතක් ඉදිරිපත් කරයි
- පරිශීලකයා විසින් ධාරකය පමණක් කෙලින්ම කැඳවනු ඇත, එබැවින් එහි තනි අනුවාදයක් තිබිය යුතුය.
උදා: dependency1සහ dependency2සම වයසේ මිතුරන් මත රඳා පවතී නම් dependency3, ව්යාපෘති ගස පෙනෙන්නේ:
root/node_modules/
                 |
                 +- dependency1/
                 |
                 +- dependency2/
                 |
                 +- dependency3 v1.0/
dependency3ඔබගේ package.jsonගොනුවේ ඔබ කිසි විටෙක සඳහන් නොකළද මෙය සිදු වේ.
මම හිතන්නේ මෙය ප්රතිලෝම පාලන පාලන රටාවේ උදාහරණයක් .
තුල්ය පරායත්තතාවයන් සඳහා මූලාකෘති උදාහරණයක් වන්නේ ග්රන්ට්, සත්කාරක සහ එහි ප්ලගීන ය.
උදාහරණයක් ලෙස, https://github.com/gruntjs/grunt-contrib-uglify වැනි ග්රන්ට් ප්ලගිනයක , ඔබට එය පෙනෙනු ඇත:
- gruntඅ- peer-dependency
- එකම require('grunt')එක යටතේ ඇතtests/: එය ඇත්ත වශයෙන්ම වැඩසටහන භාවිතා නොකරයි.
පසුව, පරිශීලකයා ප්ලගිනයක් භාවිතා කරන විට, ඔහුට පේළියක් Gruntfileඑක් කිරීමෙන් ප්ලගිනය ව්යංගයෙන් අවශ්ය වනු ඇත grunt.loadNpmTasks('grunt-contrib-uglify'), නමුත් එය gruntපරිශීලකයා කෙලින්ම අමතනු ඇත.
සෑම ප්ලගිනයකටම වෙනස් ග්රන්ට් අනුවාදයක් අවශ්ය නම් මෙය ක්රියාත්මක නොවේ.
අත්පොත
මම හිතන්නේ ප්රලේඛනය ප්රශ්නයට හොඳින් පිළිතුරු සපයයි, සමහර විට ඔබ නෝඩ් / වෙනත් පැකේජ කළමණාකරුවන් සමඟ හුරුපුරුදු නැත. මම බොහෝ විට එය තේරුම් ගන්නේ රූබි බණ්ඩලර් ගැන මඳක් දන්නා බැවිනි.
ප්රධාන රේඛාව:
  පැකේජයක මුල සිට npm සබැඳිය හෝ npm ස්ථාපනය කරන විට මෙම දේවල් ස්ථාපනය කෙරෙන අතර වෙනත් ඕනෑම npm වින්යාස පරාමිතියක් මෙන් කළමනාකරණය කළ හැකිය. මාතෘකාව පිළිබඳ වැඩි විස්තර සඳහා npm-config (7) බලන්න.
ඉන්පසු npm-config (7) යටතේ සොයා ගන්න dev:
Default: false
Type: Boolean
Install dev-dependencies along with packages.
               
              
optionalDependenciesදැන් ද ඇති බව සලකන්න .