Новое начальное число быстрого запуска Angular дает устаревшее значение npm WARN [email protected]

Я новичок в 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 был полностью переписан, и это одна из причин, по которой я сомневаюсь в том, что пытаюсь идти в ногу с последними и лучшими передовыми практиками.


person Community    schedule 31.01.2017    source источник


Ответы (1)


К проблеме 1: Нет, в этом нет необходимости. Начальное число быстрого запуска, как говорится, является семенем, так что это просто удобный способ настроить новый проект с большим количеством предварительно настроенных инструментов и полезных свойств. Пакеты @angular и некоторые полифилы, zone.js и rxjs являются единственными «настоящими» зависимостями, и я не думаю, что они достигают отметки в 15 МБ, но, честно говоря, я не проверял. Angular2 node_modules имеют размер около 10 МБ.

К Проблема 2: Как вы уже видели, это зависимость, используемая karma и protractor, двумя инструментами / бегуном для тестирования, которым нечего делать с самим Angular2. В любом случае вы бы не стали развертывать модули, поэтому с их использованием нет проблем.

К проблеме 3: это немного больше, чем просто один файл javascript, и Typescript предпочтительнее, и вам рекомендуется использовать его, но это не обязательно. Вы можете написать angular2 на простом JS или Dart. Не знаю ни одного разработчика, который погрузился в Typescript и пожалел об этом, но это очень основано на мнении.

Надеюсь, я смогу хоть немного прояснить ваши опасения.

person lexith    schedule 31.01.2017