YMFE / ykit

基于 Webpack 的灵活快速的打包工具,帮助稳定高效构建现代 JavaScript 应用。
https://ykit.ymfe.org/
Apache License 2.0
392 stars 56 forks source link

TypeError: this.applymiddleware is not a function #42

Closed 18boys closed 6 years ago

18boys commented 6 years ago

enviroment

node@7.9.0 ykit@0.5.0

issue:

when i execute command ykit server -m, i Fall into a problem. then error is /Users/lishuai/bee/test/ykit.js:8 this.applymiddleware((req, res, next) => { TypeError: this.applymiddleware is not a function at Object.modifyWebpackConfig (/Users/lishuai/bee/test/ykit.js:8:12) at Config.setCompiler (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Config.js:159:64) at Project.handleExportsConfig (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:363:29) at Project.readConfig (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:256:47) at new Project (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:76:14) at Object.exports.getProject (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/modules/manager.js:93:29) at Object.run (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/cli.js:67:31) at Object.<anonymous> (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/bin/ykit:8:5) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10)

my ykit.js is

var path = require('path'); module.exports = { config: { exports: ['./scripts/app.js'], modifyWebpackConfig: function (baseConfig) { // 示例:处理 .hello 类型文件,全部返回文字 "hello!" this.applymiddleware((req, res, next) => { if (path.extname(req.url) === '.hello') { res.end('hello!'); // 直接返回结果 } else { next(); // 不进行处理,转给后续中间件 } }) return baseConfig; } } };

please help me ~

roland-reed commented 6 years ago

请先升级到最新版的 ykit 试试

18boys commented 6 years ago

/Users/lishuai/bee/test/ykit.js:8 this.applymiddleware(proxy) ^

TypeError: this.applymiddleware is not a function at Object.modifyWebpackConfig (/Users/lishuai/bee/test/ykit.js:8:12) at Config.setCompiler (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Config.js:161:64) at Project.handleExportsConfig (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:351:29) at Project.readConfig (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:253:47) at new Project (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/models/Project.js:76:14) at Object.exports.getProject (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/modules/manager.js:93:29) at Object.run (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/lib/cli.js:67:31) at Object. (/Users/lishuai/.nvm/versions/node/v7.9.0/lib/node_modules/ykit/bin/ykit:8:5) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) ➜ test ykit -v [ykit] 0.8.3-beta.0

最新的也不行,最初我就在最新上尝试,然后有问题,还以为是新版本有问题,切到老版本也有此问题. 另外ykit的配置如下: var proxy = require('bee-proxy') var path = require('path'); module.exports = { config: { exports: ['./scripts/app.js'], modifyWebpackConfig: function (baseConfig) { // 示例:处理 .hello 类型文件,全部返回文字 "hello!" this.applymiddleware(proxy) return baseConfig; } } };

几乎都是ykit init出来的工程,我就尝试加下中间件,然后就发现报错了. 请问你本地没有问题么,还是我电脑的环境问题?

18boys commented 6 years ago

找到原因了,是你们官网的示例错了.https://ykit.ymfe.org/guide/advanced-guides.html 这个页面的this.applymiddleware 都应该写成 this.applyMiddleware. 官方文档中示例错误,真的是不走心呀.

honchy commented 6 years ago

感谢反馈。