Невозможно скомпилировать sass, используя & quot; npm run watch & quot; — Ларавел

Хорошо. Я прохожу курс обучения по Laravel через Удеми, и все стилизации сделаны в sass. Я следовал тем же шагам, что и инструктор, но я получаю ошибки, в то время как он работал нормально. Может кто-нибудь, пожалуйста, помогите. Я на Windows, и он на MAC

Я установил Laravel с помощью composer, а затем перенес свои таблицы базы данных.

Следующее, что нам нужно было сделать, это установить узел и прочее, используя

установка npm

Вот где лежат проблемы. Я не получил папку с модулями узла, тогда как он получил. Чтобы получить папку с модулями узла, мне нужно было запустить

npm установить узел-laravel
Но папки содержали разное содержимое.

После того, как я добавил sass папки в laravel, и для их компиляции он запустил

Npm Run Watch

SASS идеально скомпилирован для него, тогда как я получил эту ошибку

    > @ watch C:\Users\andre\Dropbox\Code\Personal\CodingPhase\PHP-7\DesignSt
orm
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --wa
tch --progress --hide-modules --config=node_modules/laravel-mix/setup/web
pack.config.js

The system cannot find the path specified.
events.js:183
throw er; // Unhandled 'error' event
^

Error: spawn node_modules\webpack\bin\webpack.js ENOENT

at notFoundError (C:\Users\andre\AppData\Roaming\npm\node_modules\cro
ss-env\node_modules\cross-spawn\lib\enoent.js:11:11)
at verifyENOENT (C:\Users\andre\AppData\Roaming\npm\node_modules\cros
s-env\node_modules\cross-spawn\lib\enoent.js:46:16)
at ChildProcess.cp.emit (C:\Users\andre\AppData\Roaming\npm\node_modu
les\cross-env\node_modules\cross-spawn\lib\enoent.js:33:19)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198
:12)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ watch: `cross-env NODE_ENV=development node_modules/webpack/bi
n/webpack.js --watch --progress --hide-modules --config=node_modules/lara
vel-mix/setup/webpack.config.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ watch script.
npm ERR! This is probably not a problem with npm. There is likely additio
nal logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\andre\AppData\Roaming\npm-cache\_logs\2018-01-27T20
_14_57_489Z-debug.log

РЕДАКТИРОВАТЬ

Это пакет.json

{

"private": true,
"scripts": {
"dev": "npm run development",
"development": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"},
"devDependencies": {
"axios": "^0.15.3",
"bootstrap-sass": "^3.3.7",
"cross-env": "^3.2.3",
"jquery": "^3.1.1",
"laravel-mix": "0.*",
"lodash": "^4.17.4",
"vue": "^2.1.10"},
"dependencies": {
"nodejs": "0.0.0"}
}

1

Решение

npm install это команда, которая говорит npm (Node Package Manager) для установки пакетов, перечисленных в package.json, Команда npm install node-laravel говорит npm установить пакет node-laravel которая является «[…] библиотекой Node.js для взаимодействия с Laravel.» Бег npm install node-laravel создает node_modules папку, потому что вы устанавливаете пакет, но это неправильный пакет: node-laravel это не то, что вы ищете.

Проблема в том, что npm install не устанавливает зависимости, перечисленные в package.json так что давайте разберемся, почему это может быть.

Есть 2 типа зависимостей, перечисленных в package.json, dependencies а также devDependencies и как вы можете видеть из вашего package.json, все ваши зависимости находятся в devDependencies, devDependencies являются только установлены, когда вы находитесь в среде разработки, они не установлены в производственной среде. Это (примерно) то, что происходит:

  1. Ты бежишь npm install
  2. npm устанавливает все перечисленное в dependencies
  3. npm определяет, в какой среде вы находитесь
  4. Если вы находитесь в development нпм будет также установить пакеты, перечисленные в devDependencies

Ваш dependencies перечислены как только nodejs так что npm устанавливать нечего и поэтому npm не нужно создавать node_modules папка. Таким образом, проблема у вас (npm не устанавливает пакеты, перечисленные в devDependencies) скорее всего потому, что npm считает, что вы в производстве.

Есть 2 варианта:

  1. Вы можете настроить свою среду на работу и попросить npm установить devDependencies независимо от запуска npm install --only=dev
  2. Вы можете обновить конфигурацию среды, чтобы правильно настроить среду разработки, запустив npm config set -g production false затем беги npm install снова

Второй вариант — решение проблемы, первый — обходной путь. Я рекомендую вариант 2.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]