我是node.js、npm和Angular的新手。我正在尝试用他们提供的快速入门种子来设置一个新的Angular 2项目。
我正在遵循来自angular.io https://angular.io/docs/ts/latest/guide/setup.html的Setup for local development说明
git clone https://github.com/angular/quickstart.git quickstart
cd quickstart
npm install我收到了一些警告,但最令人担忧的是:
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue要查看我运行的依赖于minimatch@0.3.0的内容:
npm ls minimatch我得到了:
├─┬ karma@1.4.1
│ └── minimatch@3.0.3
└─┬ protractor@4.0.14
└─┬ jasmine@2.4.1
└─┬ glob@3.2.11
└── minimatch@0.3.0 所以我想我需要更新量角器,它依赖于旧的最小匹配版本?
npm install protractor@latest --save但这给了我:
WARN engine protractor@5.0.0: wanted: {"node":">=6.9.x"} (current: {"node":"4.2.6","npm":"3.5.2"})现在:
npm ls protractor
angular-quickstart@1.0.0 /path/to/project/
└── protractor@5.0.0 invalid
npm ERR! invalid: protractor@5.0.0 /path/to/project/moduleNode和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吗?它下载了大约100MB的模块,而我的带宽是有限的。需要100mb的模块才能启动一个简单的空项目,这似乎很荒谬。
关注2:使用Angular提供的快速启动种子,npm安装了存在DoS安全漏洞的minimatch 0.3.0模块。为了获得最新的模块版本,是否需要首先从源代码编译最新的node.js和npm?
关注3:与简单地包含一个js文件相比,这一切似乎都是无意中听到的,就像你在其他javascript框架或库中所做的那样。使用Angular并使用需要转换为javascript的TypeScript编写代码,是否值得这样做?Angular 2是一次彻底的重写,这也是我对尝试跟上最新最好的最佳实践持怀疑态度的原因之一。
发布于 2017-02-01 04:43:27
关注点1:不,你不需要。正如它所说的,快速入门的种子是一个种子,所以这只是一个方便的方式来设置一个新的项目,并预先配置了许多工具和好东西。@angular包和一些polyfills、zone.js和rxjs是唯一的“真正的”依赖,我不认为它达到了15mb大关,但老实说我没有检查。Angular2 node_modules的大小约为10mb。
关注点2:正如您已经看到的,这是karma和protractor使用的依赖项,这两个测试工具/运行器与Angular2本身无关。您无论如何都不会部署模块,所以使用它没有任何问题。
关注点3:它比单个javascript文件稍微多一点,Typescript是首选,建议您使用它,但您不必使用它。您可以用普通的JS或Dart编写angular2。我不知道有没有开发人员一头扎进Typescript并为此感到遗憾,但这是基于观点的。
希望我至少能澄清你的顾虑。
https://stackoverflow.com/questions/41966923
复制相似问题