#javascript #node.js #reactjs #powershell #npm
#javascript #node.js #reactjs #powershell #npm
Вопрос:
Я сталкиваюсь с проблемой при запуске сервера…
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6
PS C:WINDOWSsystem32> cd C:UsersSmart-User^
PS C:UsersSmart-User^> cd C:UsersSmart-User^Desktop2q9reactreact-app
PS C:UsersSmart-User^Desktop2q9reactreact-app> npm start
> react-app@0.1.0 start C:UsersSmart-User^Desktop2q9reactreact-app
> react-scripts start
internal/modules/cjs/loader.js:969
throw err;
^
Error: Cannot find module 'C:UsersSmart-UserDesktop2q9reactreact-appnode_modulesreact-scriptsbinreact-scripts.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
at Function.Module._load (internal/modules/cjs/loader.js:842:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-app@0.1.0 start: `react-scripts start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the react-app@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:UsersSmart-User^AppDataRoamingnpm-cache_logs2020-11-15T15_33_30_740Z-debug.log
Обычно я не могу понять ошибки в powershell, но теперь я думаю, что из-за этого:
Error: Cannot find module 'C:UsersSmart-UserDesktop2q9reactreact-appnode_modulesreact-scriptsbinreact-scripts.js'
^
знак в имени пользователя не указан в каталоге,
Я не знаю, почему я набрал это раньше, я был молод,
и теперь я перепробовал множество способов изменить имя пользователя, но ни один из них не сработал…
Должен ли я создавать новое и другое имя пользователя? Проблема здесь в том, что у меня много важных файлов, или, если есть другой способ, пожалуйста, помогите мне, или я не могу понять проблему, и она отличается от того, что я думаю, помогите мне еще раз, заранее спасибо
Ответ №1:
npm не может обрабатывать пути с некоторыми специальными символами, такими как ^, и просто проигнорирует их и попробует путь без него.
Обычно я бы сказал «переименуйте папку и не используйте специальные символы», но поскольку это переименование профиля пользователя, это немного запутанно. К счастью, есть простой обходной путь.
Создайте символическую ссылку, подобную этой (необходимо запускать в командной строке с повышенными правами):
mklink /D "C:UsersSmart-User" "C:UsersSmart-User^"
Теперь C:UsersSmart-User перенаправляет на C:UsersSmart-User ^ и npm будет работать без проблем.
Комментарии:
1. должен ли я запустить его немедленно или что? Я пробовал это, но он говорит
Access is denied
2. Как я уже сказал, вам нужно запустить его в командной строке с повышенными правами. Нажмите на меню «Пуск», введите «cmd» (без кавычек), затем щелкните правой кнопкой мыши на результате и выберите «Запуск от имени администратора». Выполните приведенную выше команду в этом окне. Это нужно сделать только один раз.
Ответ №2:
Сначала вы должны установить свои пакеты.
npm install
npm start
Комментарии:
1. Здесь проблема не в этом, даже если все настроено правильно, npm завершится неудачей, если в пути есть ^ . Вы можете легко воссоздать проблему, выполнив рабочую настройку npm и просто переименовав один из каталогов выше и добавив ^, и вы получите ту же ошибку. Переименование его во все, что вы хотите, но без специальных символов, будет работать, например. ^ этого не произойдет. Кстати, это в Windows, не уверен, существует ли такая же проблема в Linux.
2. Ах, хорошо, да, поскольку я на Linux, я не смог правильно воссоздать проблему. Я читал
MODULE_NOT_FOUND
и по опыту в 99% случаев это отсутствующий пакет,node_modules
который можно исправить с помощьюnpm install