国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

淺談webpack和webpack-cli模塊源碼分析

2024-09-02 12:20:53
字體:
來源:轉載
供稿:網友

webpack4與webpack3的區別

webpack4.0 以后,似乎執行方式就發生了改變,不再是 webpack 一波流,而是多了一個 webpack-cliwebpack3webpack-cli是合在webpack中。所以在命令行運行 webpack 命令的同時,會提示讓你再裝一個 webpack-cli

執行腳本到打包結束流程

1、當我們安裝了webpack模塊后,就會在node_modules/.bin目錄下生成一個webpack、webpack.cmd,webpacklinux下的命令腳本,webpack.cmdwindows下命令腳本,webpack.cmd可以在windows系統上直接運行。

每當執行npm run,就會自動新建一個 Shell,在這個 Shell 里面執行指定的腳本命令。因此,只要是 Shell(一般是 Bash)可以運行的命令,就可以寫在 npm 腳本里面。

比較特別的是,npm run新建的這個 Shell,會將當前目錄的node_modules/.bin子目錄加入PATH變量(軟連接),執行結束后,再將PATH變量恢復原樣。

這意味著,當前目錄的node_modules/.bin子目錄里面的所有腳本,都可以直接用腳本名調用,而不必加上路徑。比如,當前項目的依賴里面有 Mocha,只要直接寫mocha test就可以了。

執行一下命令cd ./node_modules/.bin/


2、package.jsonscript配置dev: webpack --mode development,當執行npm run dev相當于執行webpack --mode development

webpack.cmd執行時會判斷當前目錄下是否存在node執行程序,如果存在就使用當前node進程執行node_modules/webpack/bin/webpack.js,如果當前目錄下不存在node進程,則使用全局(也就是本地)node執行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

 CLIs = [ {  name: "webpack-cli",  package: "webpack-cli",  binName: "webpack-cli",  alias: "cli",  installed: isInstalled("webpack-cli"),  recommended: true,  url: "https://github.com/webpack/webpack-cli",  description: "The original webpack full-featured CLI." }, {  // some coding }];const installedClis = CLIs.filter(cli => cli.installed);if (installedClis.length === 0) { // some coding const question = `Do you want to install 'webpack-cli' (yes/no): `; // some coding} else if (installedClis.length === 1) { const path = require("path"); const pkgPath = require.resolve(`${installedClis[0].package}/package.json`); const pkg = require(pkgPath); console.log(path.resolve(  path.dirname(pkgPath),  pkg.bin[installedClis[0].binName] )) // E:/項目/webpack學習/node_modules/webpack-cli/bin/cli.js require(path.resolve(  path.dirname(pkgPath),  pkg.bin[installedClis[0].binName] ));}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通河县| 三亚市| 蕲春县| 蒙城县| 定南县| 泸西县| 五台县| 巴彦淖尔市| 淳安县| 宣城市| 定陶县| 汽车| 驻马店市| 新邵县| 东辽县| 且末县| 潜江市| 洛扎县| 无为县| 卫辉市| 阆中市| 兴安县| 鹤岗市| 永顺县| 历史| 丰顺县| 铜陵市| 南川市| 铜川市| 铁岭县| 宜宾市| 仪陇县| 迭部县| 棋牌| 杭锦后旗| 漠河县| 花莲市| 门源| 南通市| 东源县| 洛宁县|