Open cpu220 opened 6 years ago
问问题应该贴出你的关键信息,比如你的配置,你的package.json
.webpackrc
{
"entry": "src/index.js",
"theme":{
"primary-color":"#3187F6",
"border-radius-base": "2px",
"font-size-base":"12px"
},
"env": {
"development": {
"extraBabelPlugins": [
"dva-hmr",
"transform-runtime",
["import", {
"libraryName": "antd",
"style": true
}]
]
},
"production": {
"extraBabelPlugins": [
"transform-runtime",
["import", {
"libraryName": "antd",
"style": true
}]
]
}
}
}
package.json
{
"version": "1.0.10",
"private": true,
"scripts": {
"start": "roadhog server",
"build": "roadhog dev"
},
"dependencies": {
"antd": "~3.2.3",
"babel-runtime": "~6.9.2",
"detect-browser": "~1.10.0",
"dva": "~2.1.0",
"dva-loading": "~0.2.0",
"es6-promise": "~4.2.2",
"localStorage": "~1.0.3",
"moment": "~2.18.1",
"qrcode.react": "~0.7.1",
"rc-color-picker": "~1.2.3",
"react": "~16.2.0",
"react-dom": "~16.2.0",
"react-router": "~4.2.0"
},
"devDependencies": {
"babel-plugin-import": "~1.2.1",
"babel-eslint": "~7.1.1",
"babel-plugin-dva-hmr": "~0.4.1",
"eslint": "~3.12.2",
"eslint-config-airbnb": "~13.0.0",
"eslint-plugin-import": "~2.2.0",
"eslint-plugin-jsx-a11y": "~2.2.3",
"eslint-plugin-react": "~6.8.0",
"expect": "~1.20.2",
"husky": "~0.12.0",
"redbox-react": "~1.3.2",
"roadhog": "~2.2.0",
"react-router": "~4.1.1",
"whatwg-fetch": "~2.0.3"
}
}
删除.webpackrc
中的 所有"transform-runtime"
试试呢?
经过了各种实验发现, 首先,删了并没有用 其次,从1.3.x 升到2.x ,改的文件不仅仅是那么几个。整个package里,尤其是eslint,版本与其配置文件的改动特别隐晦。
我看Antd pro 也是用的这个,并没有什么问题
不仅仅是eslint的问题,你们文件对比下就知道了。估计我的版本比较早,改动文件是在太多。
发现个新的问题,如果以下错误,那么control+c 无法关闭node进程。于是再次npm start的时候,就会提示发现端口占用的提示。进程内会多创建一个node进程
Module not found: Can't resolve 'xxx' in 'xxx/xxx'
我已经直接用 antD pro的 配置文件进行覆盖。启动各种报错
'xxxx/xxx' does not contain an export named 'xxx'
ApiUtil.js
export default { getJSON, postJSON }
A.js import { getJSON, postJSON } from '../ApiUtil';
// 报错 '../ApiUtil' does not contain an export named 'getJSON'. '../ApiUtil' does not contain an export named 'postJSON'.
搜了下issues,发现有人提出解决方案,但并未成功。操作如下
``` javascript
ApiUtil.js
export default {
getJSON, postJSON
}
../B/A.js
import ApiUtil from './ApiUtil';
const { getJSON, postJSON } = ApiUtil;
// 报错
Module not found: Can't resolve '../ApiUtil' in '../B/A'
于是进行以下尝试
ApiUtil.js
export default {
getJSON, postJSON
}
../B/A.js
第一步
import ApiUtil from './ApiUtil'
const { getJSON, postJSON } = ApiUtil;
第二步
const a = require('../a.js');
改成
const a = require('../a.js').defult;
最终,终于看到页面正常出现,且chrome没有任何报错。。。 整个升级过程几乎是开了3个工程,分别对比文件,然后不停的debug。最终,关于node进程无法正常关闭的问题,还是没解决
babel-runtime依赖需删除是因为最新的babel版本,依赖的名称基本改了,babel-XXX基本都变为@babel/XXX, babel-plugin-transform-runtime应该是指babel插件,这是全称,简写的话就是transform-runtime。事实上这个插件在新版本中也改名了,同样改成@babel/plugin-transform-runtime,简写为@babel/transform-runtime,其中@babel不能省略,因为省了就是两个完全不同插件。最后这俩东西roadhog2.0中应该都包含了,事实上roadhog2.0直接使用了一个preset,里面包括了这些东西,你不需要额外定义
我也遇到了同样的问题 你解决了吗
经过一系列难以描述的修改后,跑是跑起来了,但实际上并不怎么好用。
一堆问题
Environment(required) | 环境(必填)
dva 0.7.9
What happen?(发生了何种非正常现象)
按照升级文档进行操作。当进行到
this.setDynamic is not a function
this.setDynamic is not a function
babel-plugin-transform-runtime
报错