uko*_*ath 3 webpack preact styled-components
仅导入样式化组件会在浏览器控制台中导致此错误:
styled-components.browser.esm.js?face:1670 Uncaught TypeError: (0 , _react.createContext) is not a function
at Object.eval (styled-components.browser.esm.js?face:1670)
at eval (styled-components.browser.esm.js:2490)
at Object../node_modules/styled-components/dist/styled-components.browser.esm.js (vendors~index.js:167)
at __webpack_require__ (index.js:79)
at eval (index.js?12d5:2)
at Object../src/index.js (index.js:165)
at __webpack_require__ (index.js:79)
at checkDeferredModules (index.js:46)
at index.js:152
at index.js:155
Run Code Online (Sandbox Code Playgroud)
我正在使用webpack,preact,Babel。
在新的空构建中,要重现的代码实际上就是这样:
src / index.js:
styled-components.browser.esm.js?face:1670 Uncaught TypeError: (0 , _react.createContext) is not a function
at Object.eval (styled-components.browser.esm.js?face:1670)
at eval (styled-components.browser.esm.js:2490)
at Object../node_modules/styled-components/dist/styled-components.browser.esm.js (vendors~index.js:167)
at __webpack_require__ (index.js:79)
at eval (index.js?12d5:2)
at Object../src/index.js (index.js:165)
at __webpack_require__ (index.js:79)
at checkDeferredModules (index.js:46)
at index.js:152
at index.js:155
Run Code Online (Sandbox Code Playgroud)
package.json:
import { h, Component, render } from "preact"
import styled from "styled-components"
Run Code Online (Sandbox Code Playgroud)
webpack.conf.js:
{
"name": "App",
"version": "0.0.1",
"description": "Web app.",
"main": "index.js",
"scripts": {
"build": "rm -rf dist/* && NODE_ENV=development webpack -d --config webpack.conf.js --env development"
},
"devDependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-transform-react-jsx": "^6.24.1",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"html-webpack-plugin": "^3.2.0",
"preact": "^8.4.2",
"preact-compat": "^3.18.4",
"styled-components": "^4.1.3",
"webpack": "^4.28.4",
"webpack-cli": "^3.2.1"
},
"dependencies": {}
}
Run Code Online (Sandbox Code Playgroud)
使用Build可以npm run build正常工作,但是在浏览器中访问生成的页面会产生上述错误。
任何指针将不胜感激。
编辑:
根据针对Preact-CLI记录的此问题,preact没有反应,contextApi因此我应该降级styled-components到v3而不是v4。降级确实确实可以解决该问题。
令人困惑的是,《 preact》的作者Jason Miller 在一条推文中说,“ preact可以很好地支持上下文”。我可能误会了这一点。
免责声明:我从事预言工作。
您看到此错误的原因createContext是Preact 8.x不支持-API。这将是我们即将推出的下一个主要版本的一部分。我们目前处于测试版状态,希望很快就可以发布。
如果您绝对需要styled-components使用Preact 8.x,那么唯一的选择就是styled-components像@ukosteopath建议的那样降级到V3。
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |