<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      ITman彪叔的博客,微信公眾號(hào):ITman彪叔。歡迎對(duì)canvas、webgl、圖形學(xué)感興趣的讀者訂閱專欄。 點(diǎn)擊下面鏈接可以訂閱: [canvas高級(jí)進(jìn)階] https://xiaozhuanlan.com/canvas [webgl入門到高級(jí)進(jìn)階]https://xiaozhuanlan.com/webgl

      Nodejs打包 Webpack 中 __dirname 的正確配置與行為解析

      引言

      在 Webpack 配置中,__dirname 的處理方式直接影響打包后代碼的路徑邏輯。本文將徹底澄清這一配置的細(xì)節(jié),避免因誤解導(dǎo)致的路徑錯(cuò)誤。

      如果配置錯(cuò)誤,會(huì)導(dǎo)致打包一些程序上的問(wèn)題問(wèn)題,比如上傳圖片的服務(wù),比如靜態(tài)資源服務(wù)目錄(serve)等

      核心概念

      Node.js 中的 __dirname

      在原生 Node.js 中,__dirname 表示當(dāng)前模塊文件所在的絕對(duì)路徑:

      // 文件路徑: /project/src/index.js
      console.log(__dirname); // 輸出: /project/src
      

      Webpack 的特殊處理

      Webpack 通過(guò) node.__dirname 選項(xiàng)模擬或修改 __dirname 的行為,其表現(xiàn)與以下兩個(gè)因素密切相關(guān):

      1. context 配置:Webpack 的編譯基準(zhǔn)目錄(默認(rèn) process.cwd()
      2. output.path 配置:打包文件的輸出目錄

      配置選項(xiàng)詳解

      Webpack 中 node.__dirname 的合法值及行為如下:

      1. true(推薦)

      • 行為:保留輸入文件相對(duì)于 context 的路徑
      • 適用場(chǎng)景:需要調(diào)試或保留原始文件結(jié)構(gòu)時(shí)
      • 示例配置
      // webpack.config.js
      module.exports = {
        context: path.resolve(__dirname, 'src'), // 基準(zhǔn)目錄設(shè)為 src/
        entry: './index.js',
        output: {
          path: path.resolve(__dirname, 'dist'),
          filename: 'bundle.js'
        },
        node: {
          __dirname: true // 默認(rèn)值
        }
      };
      
      • 打包結(jié)果
      // dist/bundle.js
      console.log(__dirname); // 輸出: "/src"(相對(duì)于 context 的路徑)
      

      2. false

      • 行為:返回輸出目錄的絕對(duì)路徑(即 output.path
      • 適用場(chǎng)景:需要明確輸出路徑時(shí)(如生成文件到固定目錄)
      • 示例配置
      module.exports = {
        context: path.resolve(__dirname, 'src'),
        entry: './index.js',
        output: {
          path: path.resolve(__dirname, 'dist'),
          filename: 'bundle.js'
        },
        node: {
          __dirname: false
        }
      };
      
      • 打包結(jié)果
      // dist/bundle.js
      console.log(__dirname); // 輸出: "/dist"(輸出目錄路徑)
      

      實(shí)際案例對(duì)比

      假設(shè)項(xiàng)目結(jié)構(gòu)如下:

      /project/
      ├── src/
      │   └── index.js
      ├── dist/
      └── webpack.config.js
      

      不同配置下的路徑表現(xiàn)

      配置選項(xiàng) context 路徑 輸出路徑 __dirname 結(jié)果
      true /project/src /project/dist /src
      false /project/src /project/dist /dist

      代碼示例驗(yàn)證

      // webpack.config.js
      module.exports = {
        context: path.resolve(__dirname, 'src'),
        entry: './index.js',
        output: {
          path: path.resolve(__dirname, 'dist'),
          filename: 'bundle.js'
        },
        node: {
          __dirname: true // 嘗試改為 false 觀察差異
        }
      };
      
      // src/index.js
      console.log('運(yùn)行結(jié)果:', __dirname);
      

      最佳實(shí)踐建議

      1. 開發(fā)環(huán)境:使用 true 保留原始路徑,便于調(diào)試
      2. 生產(chǎn)環(huán)境:使用 false 確保輸出路徑一致性
      3. 跨平臺(tái)兼容:始終通過(guò) path 模塊處理路徑:
      const outputPath = path.resolve(__dirname, 'dist');
      
      1. 動(dòng)態(tài)資源加載:結(jié)合 __dirnamepath 模塊:
      const assetsPath = path.resolve(__dirname, 'assets');
      

      常見問(wèn)題解答

      Q: 為什么在 Webpack 中需要顯式配置 __dirname

      A: Webpack 默認(rèn)會(huì)模擬 Node.js 環(huán)境,但路徑邏輯與原生行為不同。顯式配置可避免路徑解析錯(cuò)誤。

      Q: path.resolve(__dirname, 'dist') 和直接使用 'dist' 有什么區(qū)別?

      A: __dirname 確保路徑始終基于配置文件所在目錄,而直接使用 'dist' 會(huì)基于當(dāng)前工作目錄,可能導(dǎo)致路徑錯(cuò)誤。

      Q: 如何處理不同環(huán)境下的路徑配置?

      A: 使用 webpack-merge 分離環(huán)境配置:

      // webpack.common.js
      module.exports = {
        output: {
          path: path.resolve(__dirname, 'dist')
        }
      };
      

      結(jié)論

      正確理解 Webpack 的 node.__dirname 配置是解決路徑問(wèn)題的關(guān)鍵。根據(jù)實(shí)際需求選擇 truefalse,并結(jié)合 contextoutput.path 配置,可確保項(xiàng)目在不同環(huán)境下都能正確處理文件路徑。

      最后,關(guān)注公號(hào)“ITMan彪叔” 可以添加作者微信進(jìn)行交流,及時(shí)收到更多有價(jià)值的文章。

      posted on 2025-08-26 17:56  ITman彪叔  閱讀(28)  評(píng)論(0)    收藏  舉報(bào)

      導(dǎo)航

      ITman彪叔的博客,微信公眾號(hào):ITman彪叔。歡迎對(duì)canvas、webgl、圖形學(xué)感興趣的讀者訂閱專欄。 點(diǎn)擊下面鏈接可以訂閱: [canvas高級(jí)進(jìn)階] https://xiaozhuanlan.com/canvas [webgl入門到高級(jí)進(jìn)階]https://xiaozhuanlan.com/webgl
      主站蜘蛛池模板: 国产精品亚洲国际在线看| 国产成人综合欧美精品久久| 国产蜜臀视频一区二区三区| 精品国产美女福到在线不卡| 激情在线网| 风流老熟女一区二区三区 | 最新国产精品亚洲| 精品乱人伦一区二区三区| 亚洲成av人片乱码色午夜| 在线看免费无码av天堂的| 国内精品久久久久影院日本| 一本高清码二区三区不卡| 博兴县| 天天爽夜夜爱| 国产999久久高清免费观看| 欧美熟妇性XXXX欧美熟人多毛| 亚洲欧美日韩人成在线播放| 欧美视频免费一区二区三区| 欧美丰满熟妇xxxx性ppx人交| 女高中生自慰污污网站| 四虎永久地址www成人| 好紧好湿好黄的视频| 中文字幕人妻不卡精品| 亚洲精品综合网中文字幕| 四虎永久免费精品视频| 伊人成伊人成综合网222| 不卡一区二区三区四区视频| 国产美女午夜福利视频| 国产一精品一av一免费| 增城市| 视频一区视频二区制服丝袜| 亚洲av日韩av一区久久| 色视频在线观看免费视频| 国产美女午夜福利视频| 人妻夜夜爽天天爽三区丁香花| 熟妇人妻任你躁在线视频| 日区中文字幕一区二区| 五月婷婷激情视频俺也去淫| 中文字幕久无码免费久久| 亚洲风情亚aⅴ在线发布| 亚洲精品综合一区二区三区|