Node.js прави възможно писането на приложения в JavaScript на сървъра. Той е изграден върху V8 JavaScript runtime и е написан на C++ — така че е бърз. Първоначално той беше замислен като сървърна среда за приложения, но разработчиците започнаха да го използват, за да създават инструменти, които да им помогнат при автоматизирането на локални задачи. Оттогава изцяло нова екосистема от базирани на възли инструменти (като „Grunt“ и „Gulp“) се разви, за да трансформира лицето на разработката от предния край.

За да използваме тези инструменти (или пакети) в Node.js, трябва да можем да ги инсталираме и управляваме по полезен начин. Тук се намесва npm, мениджърът на пакети за възли. Той инсталира пакетите, които искате да използвате, и предоставя полезен интерфейс за работа с тях. Но преди да започнем да използваме npm, първо трябва да инсталираме Node.js на нашата система.

Инсталиране на Node.js

Насочете се към страницата за изтегляне на Node.js и вземете версията, от която се нуждаете. Налични са инсталатори за Windows и Mac, както и предварително компилирани двоични файлове и изходен код на Linux. За Linux можете също да инсталирате Node чрез мениджъра на пакети, както е описано тук.

За този урок ще използваме v.5.7.0 Stable.

Да видим къде е инсталиран възел и да проверим версията.

$ which node /usr/local/bin/node $ node --version v5.7.0

За да проверите дали вашата инсталация е била успешна, нека да опитаме REPL на Node.

$ node > console.log('Node is running'); Node is running > .help .break Sometimes you get stuck, this gets you out .clear Alias for .break .exit Exit the repl .help Show repl options .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file > .exit

Инсталацията на Node.js работи, така че сега можем да съсредоточим вниманието си върху npm, който беше включен в инсталацията.

$ which npm /usr/local/bin/npm $ npm --version 3.6.0

Пакетирани модули на възел

npm може да инсталира пакети в локален или глобален режим. В локален режим той инсталира пакета в папка node_modules във вашата родителска работна директория. Това местоположение е собственост на текущия потребител. Глобалните пакети се инсталират в {prefix}/lib/node_modules/, който е собственост на root (където {prefix} обикновено е /usr/ или /usr/local). Това означава, че ще трябва да използвате sudo, за да инсталирате пакети глобално, което може да причини грешки в разрешенията при разрешаване на зависимости от трети страни, както и да представлява проблем за сигурността. Нека променим това:

Промяна на местоположението на глобалните пакети

Нека да видим какъв изход ни дава npm config.

$ npm config list ; cli configs user-agent = "npm/3.6.0 node/v5.7.0 linux x64" ; node bin location = /usr/local/bin/node ; cwd = /home/sitepoint ; HOME = /home/sitepoint ; 'npm config ls -l' to show all defaults.

Това ни дава информация за нашата инсталация. Засега е важно да получите текущото глобално местоположение.

$ npm config get prefix /usr/local

Това е префиксът, който искаме да променим, за да инсталираме глобални пакети в нашата домашна директория. За да направите това, създайте нова директория във вашата домашна папка.

$ cd && mkdir .node_modules_global $ npm config set prefix=$HOME/.node_modules_global

С тази проста промяна на конфигурацията сме променили местоположението, на което са инсталирани глобалните пакети Node. Това също създава .npmrc файл в нашата домашна директория.

$ npm config get prefix /home/sitepoint/.node_modules_global $ cat .npmrc prefix=/home/sitepoint/.node_modules_global

Все още имаме инсталиран npm на място, притежавано от root. Но тъй като променихме нашето глобално местоположение на пакета, можем да се възползваме от това. Трябва да инсталираме npm отново, но този път в новото местоположение, собственост на потребителя. Това също ще инсталира най-новата версия на npm.

$ npm install npm --global /home/sitepoint/.node_modules_global/bin/npm -> /home/sitepoint/.node_modules_global/lib/node_modules/npm/bin/npm-cli.js /home/sitepoint/.node_modules_global/lib └── [email protected]

И накрая, трябва да добавим .node_modules_global/bin към нашата променлива на средата $PATH, за да можем да изпълняваме глобални пакети от командния ред. Направете това, като добавите следния ред към вашия .profile или .bash_profile и рестартирате вашия терминал.

export PATH="$HOME/.node_modules_global/bin:$PATH"

Сега нашият .node_modules_global/bin ще бъде намерен първи и ще се използва правилната версия на npm.

$ which npm /home/sitepoint/.node_modules_global/bin/npm $ npm --version 3.7.5

Инсталиране на пакети в глобален режим

В момента имаме само един инсталиран глобално пакет — това е самият пакет npm. Така че нека променим това и инсталираме UglifyJS (инструмент за минимизиране на JavaScript). Използваме глобалния флаг —, но това може да бъде съкратено до -g.

$ npm install uglify-js --global /home/sitepoint/.node_modules_global/lib └─┬ [email protected] ├── [email protected] ├── [email protected] ├── [email protected] └─┬ [email protected] ├── [email protected] ├─┬ [email protected] │ ├─┬ [email protected] │ │ ├─┬ [email protected] │ │ │ ├─┬ [email protected] │ │ │ │ └── [email protected] │ │ │ ├── [email protected] │ │ │ └── [email protected] │ │ └── [email protected] │ ├── [email protected] │ └── [email protected] ├─┬ [email protected] │ └── [email protected] └── [email protected]

Както можете да видите от изхода, инсталирани са допълнителни пакети — това са зависимостите на uglify-js.

Изброяване на глобални пакети

Първоначално публикувано на www.laravelfeed.com.