node、npm 、package.json、Angular Cli、webpack之间的关系(Windows环境下)

2022-08-28 14:02:07 浏览数 (1)

IDE:webstorm,已安装angular插件。

Angular Cli 依赖webpack,简化创建项目流程; npm属于node一部分,npm 从package.json找对应的scripts执行命令,scripts对应的命令也会使用Angular Cli命令,比如ng,从IDE点击ng命令,跳转到项目路径/node_modules/.bin/ng:

代码语言:javascript复制
#!/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:

代码语言:javascript复制
#!/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.nn'  
    'Please update your Node.js version or visit https://nodejs.org/ for additional instructions.n'
  );

  process.exitCode = 3;
} else {
  require('../lib/init');
}

0 人点赞