TypeError:__webpack_require __i(…)不是一個(gè)函數(shù)
resolve: { alias: {core: path.join(__dirname, ’core’), }, },對(duì)于一般讀者:確保您嘗試導(dǎo)入的東西確實(shí)存在于該軟件包中。說(shuō)明發(fā)問(wèn)者的問(wèn)題:導(dǎo)入自己的代碼,例如npm模塊
您嘗試以與從node_modules文件夾中的npm包中導(dǎo)入內(nèi)容相同的方式導(dǎo)入模塊的導(dǎo)出內(nèi)容:import { something } from’packagename’;。這樣做的問(wèn)題是無(wú)法立即使用。在Node.js的文檔給出為什么答案:
如果沒(méi)有以“ /”、“./”或“ ../”開(kāi)頭的文件,則該模塊必須是核心模塊,或者是從node_modules文件夾加載的。
因此,您必須按照Waldo Jeffers 建議進(jìn)行操作并編寫(xiě)import { smartForm }from’./core’,或者可以配置webpack以便它可以通過(guò)創(chuàng)建別名來(lái)解決導(dǎo)入路徑,而別名是為解決此確切問(wèn)題而創(chuàng)建的。
一般調(diào)試錯(cuò)誤消息如果您嘗試從現(xiàn)有的npm包(中node_modules)中導(dǎo)入某些內(nèi)容,但是 則會(huì)出現(xiàn)此錯(cuò)誤。在這種情況下,請(qǐng) 并且您嘗試導(dǎo)入的給定內(nèi)容確實(shí)在該軟件包中。如今,將庫(kù)分成多個(gè)npm軟件包很流行, 。
因此,如果您得到這樣的信息:
TypeError: __webpack_require__.i(...) is not a function at /home/user/code/test/index.js:165080:81 at Layer.handle [as handle_request] (/home/user/code/test/index.js:49645:5)
要獲取有關(guān)應(yīng)檢查哪些導(dǎo)入的更多信息,只需打開(kāi)由webpack生成的輸出文件,然后轉(zhuǎn)到錯(cuò)誤堆棧中最上面一行所標(biāo)記的行(本例中為165080)。您應(yīng)該看到類(lèi)似:的信息__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__['match'])。這告訴我們,中沒(méi)有match導(dǎo)出(或存在,但是它不是一個(gè)函數(shù))react-router-dom,因此我們需要檢查該導(dǎo)入周?chē)膬?nèi)容。
解決方法我在嘗試簡(jiǎn)化導(dǎo)入時(shí)遇到webpackTypeError。以下代碼可以正常工作。在這里,我導(dǎo)入了一個(gè)smartForm從調(diào)用的React高階組件(HOC)core/components/form/index.js。
core / components / form / index.js (對(duì)進(jìn)行命名輸出smartForm)
export smartForm from ’./smart-form’;
login-form.jsx (導(dǎo)入和使用smartForm)
import { smartForm } from ’core/components/form’;class LoginForm extends React.Component { ...}export default smartForm(LoginForm);
但是,我想將導(dǎo)入簡(jiǎn)化為just import { smartForm } from ’core’。所以,我再出口smart-form的core/index.js和進(jìn)口它c(diǎn)ore。請(qǐng)參見(jiàn)下面的代碼:
core / index.js (對(duì)進(jìn)行命名導(dǎo)出smartForm)
export { smartForm } from ’./components/form’;// export smartForm from ’./components/form’; <--- Also tried this
login-form.jsx (導(dǎo)入和使用smartForm)
import { smartForm } from ’core’; class LoginForm extends React.Component {... } export default smartForm(LoginForm); // <--- Runtime exception here
這段代碼編譯沒(méi)有任何問(wèn)題,但是我在行中得到了以下運(yùn)行時(shí)異常export default smartForm(LoginForm);:
login-form.jsx:83未捕獲的TypeError: webpack_require .i(…)不是函數(shù)(…)
我想念什么?
PS這是我正在使用的圣經(jīng)和插件版本:
'babel-core': '^6.18.2','babel-preset-es2015-webpack': '^6.4.3','babel-preset-react': '^6.16.0','babel-preset-stage-1': '^6.16.0',
相關(guān)文章:
1. jquery - angularjs的數(shù)據(jù)為什么渲染不到頁(yè)面上?數(shù)據(jù)獲取到了,我的代碼哪里出了錯(cuò)了?2. css - 如何控制鼠標(biāo)事件?當(dāng)處于down時(shí)會(huì)觸發(fā)其他效果,而up的時(shí)候則會(huì)取消所有效果?3. 求助一個(gè)Android控件名稱(chēng)4. vim - docker中新的ubuntu12.04鏡像,運(yùn)行vi提示,找不到命名.5. IOS app應(yīng)用軟件的id號(hào)怎么查詢(xún)?比如百度貼吧的app-id=4779278136. javascript - 求助,html5如何調(diào)用攝像頭拍照??7. mysql數(shù)據(jù)庫(kù)是不是報(bào)10061錯(cuò)誤8. python - flask的errorhandler(BaseError)重寫(xiě)方法后怎么獲得更多信息9. css - 關(guān)于offsetLeft和offsetTop10. html5 - mui dialog 如何配置type屬性
