BonBonSlick
@BonBonSlick
Vanilla Full Stack Web Architector

Module is not installed?

Точно такая же трабла для PhpStorm 2019.1.2
https://intellij-support.jetbrains.com/hc/en-us/co...
Импортирование модуля работает корректно, но шторм выдает варнинг.

Сброс кеша не помог.
import * as test from '@store/getters'; // warning not installed

module.exports = {
    mode: 'development',
    entry: [
        './src/app.js',
    ],
    output: {
        path: path.resolve(__dirname, '../dist'),
        filename: 'main.js',
        publicPath: '/',
    },
resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
            vue: 'vue/dist/vue.js',
            config: path.resolve(__dirname, '../config'),
            src: path.resolve(__dirname, '../src'),
            '@store': path.resolve(__dirname, '../src/store'),
            assets: path.resolve(__dirname, '../src/assets'),
            components: path.resolve(__dirname, '../src/components'),
            '@': path.resolve(__dirname, '../src'),
...

node -v = 10.1
Плагин Node,js, Vue.js стоят.

Как тогда правильно настроить шторм или вебпак?

UPD
Elena Pogorelova
Created October 03, 2017 16:48

make sure to specify a path to your webpack config in Settings | Languages & Frameworks | JavaScript | Webpack. See https://intellij-support.jetbrains.com/hc/en-us/co...

Note also that you have to include file extension in import - https://intellij-support.jetbrains.com/hc/en-us/co...

В моем случае указать конфиг помогло.
Вот только тогда сломались все пути для node_modules. То есть любой импорт из node_modules теперь стал выдавать warning!

import {mapGetters, mapActions} from 'vuex';

    export default {
        name: 'test',
        computed: {
            ...mapGetters({

Cannot resolve symbol mapGetters
Cannot resolve symbol mapActions
https://vuex.vuejs.org/guide/getters.html#the-mapg...

export declare const mapGetters: Mapper<Computed>
  & MapperWithNamespace<Computed>;

export declare const mapActions: Mapper<ActionMethod>
  & MapperWithNamespace<ActionMethod>
  & FunctionMapper<Dispatch, ActionMethod>
  & FunctionMapperWithNamespace<Dispatch, ActionMethod>;

https://github.com/vuejs/vuex/blob/caa663d69608fc3...

Так варнинга нет
import {mapGetters, mapActions} from 'vuex/types/helpers';

Но есть ошибка
Module not found: Error: Can't resolve 'vuex/types/helpers'

Стоит заметить, если убрать путь к конфигу вебпака, варнинга нет дляimport {mapGetters, mapActions} но есть для алиасов вебпака.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
У вас совершенно дикая секция алиасов.

Например
'@': path.resolve(__dirname, '../src'),
'@store': path.resolve(__dirname, '../src/store'),


Не кажется, что второй алиас излишен?
import some from '@/store/some';
import some from '@store/some';

Не велика разница.
Всё остальное из той же серии.

Посмотрите на стандартный конфиг из vue cli:
5d69f692990f8794340877.png

Всего пара правил, и их достаточно. Особенно в среде phpStorm, который сам втыкает эти импорты, избавляя от необходимости писать ручками.

Чтобы импорты корректно резолвились, нужно указать путь к конфигу вебпака.
5d69f7b50917a554156764.png
И включить опцию "Use path aliases" в настройках код-стайла.
5d69f7be500de157466313.png

PS. Я вижу, вы сами настраиваете вебпак. Попробуйте vue/cli 3. Быстро получаешь готовый конфиг из коробки. Можно сохранять свои пресеты. Ну и конфиги конечно можно вручную дописывать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы