- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试简化导入时,出现了 webpack TypeError。以下代码可以正常运行,没有任何问题。在这里,我从 core/components/form/index.js
导入一个名为 smartForm
的 React 高阶组件 (HOC)。
core/components/form/index.js(执行 smartForm
的命名导出)
export smartForm from './smart-form';
login-form.jsx(导入并使用smartForm
)
import { smartForm } from 'core/components/form';
class LoginForm extends React.Component {
...
}
export default smartForm(LoginForm);
但是,我想将导入简化为仅 import { smartForm } from 'core'
。因此,我在 core/index.js
中重新导出了 smart-form
,并从 core
中导入了它。请参阅下面的代码:
core/index.js(执行 smartForm
的命名导出)
export { smartForm } from './components/form';
// export smartForm from './components/form'; <--- Also tried this
login-form.jsx(导入并使用smartForm
)
import { smartForm } from 'core';
class LoginForm extends React.Component {
...
}
export default smartForm(LoginForm); // <--- Runtime exception here
此代码编译时没有任何问题,但我在 export default smartForm(LoginForm);
行收到以下运行时异常:
login-form.jsx:83 Uncaught TypeError: webpack_require.i(...) is not a function(…)
我错过了什么?
附注以下是我正在使用的 Bable 和插件版本:
"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",
最佳答案
对于提问者:将其添加到您的 webpack.config.js
中:
resolve: {
alias: {
core: path.join(__dirname, 'core'),
},
},
对于一般受众:请确保您尝试导入的内容确实存在于该包中。
您尝试以与从 node_modules
文件夹中的 npm 包导入某些内容相同的方式导入模块的导出:import { some } from 'packagename';
。问题是它不能开箱即用。 Node.js docs给出原因的答案:
Without a leading '/', './', or '../' to indicate a file, the module must either be a core module or is loaded from a
node_modules
folder.
所以你要么必须做Waldo Jeffers和Spain Train建议并编写 import { smartForm } from './core'
,或者您可以配置 webpack,以便它可以通过 its aliases 解析您的导入路径这些都是为了解决这个问题而创建的。
如果您尝试从现有 npm 包(在 node_modules
中)导入某些内容,但导入的内容在导出中不存在,则可能会出现此错误。在这种情况下,确保没有拼写错误,并且您尝试导入的给定内容确实位于该包中。如今,将库分解为多个 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)
要获取有关应检查的导入内容的更多信息,只需打开 webpack 生成的输出文件,然后转到错误堆栈中最上面一行标记的行(在本例中为 165080)。您应该看到类似:__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__["match"])
。这告诉我们在 react-router-dom
中没有 match
导出(或者有但它不是一个函数),所以我们需要检查我们的东西那个导入。
关于reactjs - 类型错误 : __webpack_require__. i(...) 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40873599/
当我尝试简化导入时,出现了 webpack TypeError。以下代码可以正常运行,没有任何问题。在这里,我从 core/components/form/index.js 导入一个名为 smartF
我正在尝试在 Visual Studio 上启动我的 Angular 应用程序,但是当它启动时,它停留在“正在加载...”部分。 如果我阅读 Chrome 的错误控制台,我会收到以下错误: Uncau
我收到以下错误。几个月来,我的应用程序一切正常,但在运行 npm install 后才开始出现这种情况。 Uncaught ReferenceError: __webpack_require__ is
我目前正在使用 React 将网站从 React-Fuse 转移到 NextJS。大多数情况下一切都工作正常,但在尝试创建构建时出现一个我无法解决的错误: > Build error occurred
当我尝试使用此代码动态导入 vue 组件时: const components = require.context('./', true, '/^index\.js$/'); 我收到此错误: app.
const importAll = (r) => r.keys().map(r); const importAllFrom = (dir) => importAll(require.context(d
我刚刚开始学习 Angular 4。我收到以下错误 Uncaught TypeError: Object(...) is not a function at eval (bidi.es5.js
尝试在 index.js 中使用 hydrate() 时出现 webpack TypeError。当我使用 ReactDOM.render() 而不是 hydrate 并且我使用 hydrate 进行
一切似乎都构建良好:http://d.pr/i/1aZxR具有以下配置。 但是,当我运行代码时,我收到以下错误(通过 webpack-dev-server): Uncaught TypeError:
我有一个使用 Stripe 的 vue 项目,但是,就在最近,当我加载我的工作区时,这个错误一直在发生,我完全不知道如何诊断它。 有趣的是,我的实时版本没有任何错误,而且它们是完全相同的版本。 我在过
我正在使用 React.lazy 在运行时加载一些 React 类,这样它们就不会一次全部加载。我的代码适用于生产,但在我处于开发模式时崩溃。 (更新:我的代码不再适用于生产 - 见下文)。 特定的错
我有一个使用 loadChildren 的简单 Angular2 应用程序,它在依赖 SystemJs 的开发过程中工作正常,在对其进行 webpack 并使用 webpack 加载器修复问题后,输出
我是一名优秀的程序员,十分优秀!