වැදගත් හැසිරීම් වෙනස්කම් වල සාරාංශය:
අදාළ විකල්ප මෙහි සාකච්ඡා නොකෙරේ:
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
දැන් ද ඇති බව සලකන්න .