浅谈webpack和webpack-cli模块源码分析

  

  

<代码> webpack4.0> webpack 一波流,而是多了一个<代码> webpack-cli> webpack3> webpack-cli> webpack> webpack 命令的同时,会提示让你再装一个<代码> webpack-cli>   

  

1,当我们安装了<代码> webpack 模块后,就会在<代码> node_modules/1?/代码>目录下生成一个<代码> webpack, webpack.cmd, webpack 是<代码> linux下的命令脚本,<代码> webpack.cmd 是<代码> 窗户下命令脚本,<代码> webpack.cmd> 系统上直接运行。

  

每当执行<代码> npm> 壳> 壳里面执行指定的脚本命令,因此,只要是<代码>壳> )可以运行的命令,就可以写在<代码> npm 脚本里面。

  

比较特别的是,<代码> npm> node_modules/1?/代码>子目录加入<代码>路径> 路径>   

这意味着,当前目录的<代码> node_modules/1敬? 摩卡> 摩卡测试>         执行一下命令   cd。\ node_modules \。bin \      

浅谈webpack和webpack-cli模块源码分析“> <br/>
  </p>
  <p> 2, <代码>包。json代码</>中脚本<代码> </代码>配置<代码> dev: webpack——模式发展> </代码,当执行<代码> npm运行dev> </代码相当于执行<代码> webpack——模式开发</代码> <br/>
  </p>
  <p> <img src=

  

<代码> webpack.cmd> 节点> 节点进程执行<代码> node_modules/webpack/bin/webpack.js> 节点进程,则使用全局(也就是本地) <代码>节点执行<代码> node_modules/webpack/bin/webpack。js代码文件
  

  

3 <代码> node_modules/webpack/bin/webpack.js> webpack-cli 模块,如果没有安装<代码> webpack-cli 模块就会引导用户去安装,如果已经安装了<代码> webpack-cli 模块,就会去执行<代码> node_modules \ webpack-cli \ bin \ cli.js

        综合领先指标=[   {   名称:“webpack-cli”,   包:“webpack-cli”,   binName:“webpack-cli”,   别名:“cli”,   安装:isInstalled (“webpack-cli”),   建议:没错,   url:“https://github.com/webpack/webpack-cli”,   描述:“原webpack功能齐全的CLI。”   },   {//一些编码   }   ];      const installedClis=综合领先指标。过滤器(cli=比;cli.installed);      如果(installedClis。长度===0){//一些编码   const问题='你想安装' webpack-cli”(是/否):;//一些编码   如果(installedClis}其他。长度===1){   const path=要求(“路径”);   const pkgPath=require.resolve (“$ {installedClis [0] .package}/package.json ');   const pkg=要求(pkgPath);   console.log (path.resolve (   path.dirname (pkgPath),   pkg.bin [installedClis [0] .binName]   )//E: \项目\ webpack学习\ node_modules \ webpack-cli \ bin \ cli.js   要求(path.resolve (   path.dirname (pkgPath),   pkg.bin [installedClis [0] .binName]   ));   }      

, <代码> node_modules \ webpack-cli \ bin \ cli.js> 要求(“webpack”) 引入<代码> webpack 模块(<代码>/node_modules/lib/webpack.js> webpack 函数,运行<代码> webpack 函数,返回一个编译器<代码> 对象,执行<代码> 中编译器的<代码>运行>      //node_modules/bin/cli.js   (函数(){//一大堆配置//代码的东西……   yargs.parse (process.argv.slice(2),(呃,argv、输出)=比;{//代码的东西……   函数processOptions(选项){//各种如果其他过滤和配置//代码的东西……   const webpack=要求(“webpack”);   让编译器;   尝试{//运行webpack函数,返回一个编译器对象   编译器=webpack(选项);   }捕捉(err) {//代码的东西……   }//执行编译器中运行的,开始编译。   compiler.run (compilerCallback);   }   processOptions(选项);   })//代码的东西……      })()

浅谈webpack和webpack-cli模块源码分析