IDE:webstorm,已安装angular插件。
Angular Cli 依赖webpack,简化创建项目流程;
npm属于node一部分,npm 从package.json找对应的scripts执行命令,scripts对应的命令也会使用Angular Cli命令,比如ng,从IDE点击ng命令,跳转到项目路径/node_modules/.bin/ng:
#!/bin/shbasedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")case `uname` in*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;esacif [ -x "$basedir/node" ]; then"$basedir/node" "$basedir/../@angular/cli/bin/ng" "$@"ret=$?elsenode "$basedir/../@angular/cli/bin/ng" "$@"ret=$?fiexit $ret
可以看的出它是使用node执行node_modules/@angular/cli/bin/ng:
#!/usr/bin/env node'use strict';// Provide a title to the process in `ps`.// Due to an obscure Mac bug, do not start this title with any symbol.try {process.title = 'ng ' + Array.from(process.argv).slice(2).join(' ');} catch (_) {// If an error happened above, use the most basic title.process.title = 'ng';}// This node version check ensures that extremely old versions of node are not used.// These may not support ES features such as const/let/async/await/etc.// These would then crash with a hard to diagnose error message.// tslint:disable-next-line: no-var-keywordvar version = process.versions.node.split('.').map(part => Number(part));if (version[0] < 10 || version[0] === 11 || (version[0] === 10 && version[1] < 13)) {console.error('Node.js version ' + process.version + ' detected.\n' +'The Angular CLI requires a minimum Node.js version of either v10.13 or v12.0.\n\n' +'Please update your Node.js version or visit / for additional instructions.\n');process.exitCode = 3;} else {require('../lib/init');}