由JetBrains的WebStorm/PhpStorm考虑当地的JavaScript变量可以就地上的Shift + F6改名:变量不在WebStorm/PhpStorm视为当地的重命名重构
不幸的是,这只有当变量由于函数范围而具有局部范围时才会发生。
当前项目是ES6 Node.js,这意味着所有新定义的变量都是本地的。但CommonJS的模块范围没有考虑到,和块作用域变量不考虑当地的为好,IDE试图在他们整个项目的全局命名上的Shift + F6:
这成为令人沮丧。在一个大型项目中,“寻找用法”非常缓慢,其他项目文件中不需要的重命名的风险太高,因此多光标编辑和Ctrl + R搜索/替换效率更高。
该项目package.json
文件在其根,ECMAScript 6
在Languages & Frameworks/JavaScript
和ECMAScript 6
,在Languages & Frameworks/JavaScript/Libraries
Node.js Core
启用。
这怎么处理?这是一个已知的错误吗?
CommonJS模块中的块范围变量和变量在下一个WebStorm EAP中将被视为本地变量。虽然,WebStorm在这种情况下认为文件是CommonJS模块,如果它需要或导出分配。 – de1mar
@ de1mar你是否也在最后一句中提到了EAP?因为我在2016年有了module.exports并需要在文件中,并没有什么不同。 – estus
是的,我的意思是它从来没有像你写的那样工作,但我已经修复了它,并且在下一个WebStorm 2017.1 EAP中修复将可用。 – de1mar