IDE:webstorm,已安装angular插件。
Angular Cli 依赖webpack,简化创建项目流程; npm属于node一部分,npm 从package.json找对应的scripts执行命令,scripts对应的命令也会使用Angular Cli命令,比如ng,从IDE点击ng命令,跳转到项目路径/node_modules/.bin/ng:
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../@angular/cli/bin/ng" "$@"
ret=$?
else
node "$basedir/../@angular/cli/bin/ng" "$@"
ret=$?
fi
exit $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 ES2015 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-keyword
var 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 https://nodejs.org/ for additional instructions.\n'
);
process.exitCode = 3;
} else {
require('../lib/init');
}