Javascript 在Webstorm中自动完成我的自定义npm模块(ES6/Babel)
当我使用软件包时,我在Webstorm中得到了很好的自动完成(ctrl+space): 我认为这可能与包中包含index.es.js文件有关:Javascript 在Webstorm中自动完成我的自定义npm模块(ES6/Babel),javascript,intellij-idea,npm,ecmascript-6,babeljs,Javascript,Intellij Idea,Npm,Ecmascript 6,Babeljs,当我使用软件包时,我在Webstorm中得到了很好的自动完成(ctrl+space): 我认为这可能与包中包含index.es.js文件有关: import _AppBar from './AppBar'; export { _AppBar as AppBar }; import _AutoComplete from './AutoComplete'; export { _AutoComplete as AutoComplete }; import _Avatar from './Avatar
import _AppBar from './AppBar';
export { _AppBar as AppBar };
import _AutoComplete from './AutoComplete';
export { _AutoComplete as AutoComplete };
import _Avatar from './Avatar';
export { _Avatar as Avatar };
import _Badge from './Badge';
export { _Badge as Badge };
import _BottomNavigation from './BottomNavigation';
...
因此,我在自定义npm模块中生成了自己的index.es.js,并将其放在transpiled index.js旁边:
import {ActionTypes as _ActionTypesElements} from './reducers/elements/elements';
export { _ActionTypesElements as ActionTypes };
import {ActionTypes as _ActionTypesAppState} from './reducers/appState/appState';
export { _ActionTypesAppState as ActionTypesAppState };
import _appStateActions from './reducers/appState/appState_actions';
export { _appStateActions as appStateActions };
...
但我没有自动完成:
知道为什么吗?找到了答案:
必须在npm模块的package.json中添加一个jsnext:main字段:
package.json:
...
"module": "./index.js",
"jsnext:main": "./index.es.js",
...
Webstorm识别包的内部导出。在Webstorm 2019.3中,我遵循以下步骤强制代码完成(包括自动导入)以用于自定义、自发布的NPM包:
{
“名称”:“testproject”,
“版本”:“1.0.0”,
“依赖项”:{
“@yourname/yourpackage”:“最新”
}
}
导出函数init(){
伊斯尼尔
}
相比之下,以下代码不包含export语句,因此isNil()不会自动导入:
function init () {
isNil
}
对我来说,上述三个步骤都是代码完成所必需的,以便在WebStorm中为我自己的NPM包工作。您是否安装了任何材料插件?在
文件->设置->插件中
?您是否安装了npm模块,如:npm文件编辑器安装
?@Edwin我找到了答案,显然我必须在package.json中添加一个名为jsnext:main的字段。