Хорошо. Я прохожу курс обучения по 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"}
}
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
являются только установлены, когда вы находитесь в среде разработки, они не установлены в производственной среде. Это (примерно) то, что происходит:
npm install
dependencies
development
нпм будет также установить пакеты, перечисленные в devDependencies
Ваш dependencies
перечислены как только nodejs
так что npm устанавливать нечего и поэтому npm не нужно создавать node_modules
папка. Таким образом, проблема у вас (npm не устанавливает пакеты, перечисленные в devDependencies
) скорее всего потому, что npm считает, что вы в производстве.
Есть 2 варианта:
devDependencies
независимо от запуска npm install --only=dev
npm config set -g production false
затем беги npm install
сноваВторой вариант — решение проблемы, первый — обходной путь. Я рекомендую вариант 2.
Других решений пока нет …