Я новичок в node.js, npm и Angular. Я пытаюсь настроить новый проект Angular 2 с предоставленным им семенем быстрого запуска.
Я следую Setup for local development
инструкциям из angular.io https://angular.io/docs/ts/latest/guide/setup.html
git clone https://github.com/angular/quickstart.git quickstart
cd quickstart
npm install
Я получаю несколько предупреждений, но самое важное:
npm WARN deprecated [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
Чтобы узнать, что полагается на [email protected]
, я бегу:
npm ls minimatch
И я получаю:
├─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
└── [email protected]
Итак, я думаю, мне нужно обновить транспортир, который зависит от старой версии миниматча?
npm install protractor@latest --save
Но это дает мне:
WARN engine [email protected]: wanted: {"node":">=6.9.x"} (current: {"node":"4.2.6","npm":"3.5.2"})
И сейчас:
npm ls protractor
[email protected] /path/to/project/
└── [email protected] invalid
npm ERR! invalid: [email protected] /path/to/project/module
Node и npm - это уже последняя версия, доступная в репозитории Ubuntu Xenial.
apt-get install --only-upgrade nodejs
nodejs is already the newest version (4.2.6~dfsg-1ubuntu4.1).
apt-get install --only-upgrade npm
npm is already the newest version (3.5.2-0ubuntu4).
Проблема 1: действительно ли для каждого проекта Angular мне нужно запускать npm install на начальном этапе быстрого запуска? Он загружает ~ 100 МБ модулей, и у меня ограниченная пропускная способность. Кажется смешным требовать 100 МБ модулей для запуска простого пустого проекта.
Проблема 2: Используя предоставленное Angular начальное число быстрого запуска, npm устанавливает модуль minimatch 0.3.0, который имеет уязвимость безопасности DoS. Ожидается ли сначала скомпилировать последние версии node.js и npm из исходного кода, чтобы получить последние версии модулей?
Проблема 3: все это кажется подслушанным по сравнению с простым включением одного файла js, как если бы вы делали это с другими фреймворками или библиотеками javascript. Стоит ли делать все это, чтобы использовать Angular и писать на TypeScript, который нужно преобразовать в javascript? Angular 2 был полностью переписан, и это одна из причин, по которой я сомневаюсь в том, что пытаюсь идти в ногу с последними и лучшими передовыми практиками.