Module not found: Error: Can't resolve 'xlsx' in 'd:\crx\crx-bus\src'


有個 ts 項目編譯時報錯:

Module not found: Error: Can't resolve 'xlsx' in 'd:\crx\crx-bus\src'

項目環境:

- webpack v4.x

- ts-loader v5.x

- xlsx v0.15.4

分析

從報錯字面理解,像是 xlsx 這個第三方 package 在查找時,從 src 目錄找不到。可這個包應該從 node_modules 里找才對。

調試

在 npm 的 scripts 里 webpack 命令后添加參數:

webpack  --display-error-details

觀察更細節的錯誤顯示。

發現端倪:

從更豐富的報錯信息中可以看到,查找模塊的過程在 node_modules/xlsx 里遍歷各種擴展名,以試圖尋找 xlsx ,但都未找到。

下手:

於是我打開 node_modules/xlsx,發現其 package.json 中的 main 屬性值為 ./xlsx,並未帶擴展名,而目錄里提供的 xlsx.js ,擴展名為 js。

解葯:

我檢查 webpack.conf.js 配置,追加了擴展名 .js

  resolve: {
    extensions: ['.ts', '.js', '.d.ts'],
  },
 
至此,問題解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM