Хорошо, так что я действительно больше дизайнер, который учится кодировать. Для проекта на работе я помогаю с проектом Angular, поэтому мне нужно было научиться использовать npm и прочее для установки Angular CLI и его компонентов.
У меня работает угловой проект. Это было супер легко, без проблем. Я на самом деле не очень много редактировал package.json, только некоторые основы для добавления Angular, такие как ng-serve.
Когда я переключился на фактический проект наших отделов, я столкнулся с некоторыми довольно большими проблемами, заставляя его строить. В конце концов разобрался с этим, но он продолжал давать мне ошибку о невозможности компилировать sass или что-то в этом роде.
Затем я вернулся к своему тренировочному проекту. Я скопировал и вставил его в подкаталог нашего полного проекта, чтобы я мог начать процесс перетаскивания компонентов, которые я перенес в основной проект. Когда я попытался запустить его снова, он не запустился! Это дало мне кучу ошибок, в основном говоря, что у меня не установлен node-sass. Что я и думал. Он указан в разделе зависимостей в package.json, и даже после нескольких попыток нажать «npm install», он все равно давал мне сообщения об ошибках узла. Когда я вернулся в исходную папку, в которую скопировал учебный проект, он также не запустился, хотя я вообще не изменил этот файл.
Итак, я подумал ... может быть, я удалил node-sass для глобальной установки? Я помню, когда я просматривал учебники по веб-пакетам после запуска моего проекта Angular Practice, читая, что лучше всего сделать как можно меньше глобальных установок, потому что вы хотите, чтобы у каждого проекта была своя собственная конкретная версия dep перед их обновлением и т. Д.
И я помню, как просматривал мои глобальные установки и затем смотрел, как удалить их, но я не помню, сделал ли я это для node-sass или нет.
В любом случае, когда я запускаю node-sass install глобально для другого проекта, он также начинает работать без проблем.
TL; DR
Установлены ли зависимости npm локально?
Если они перечислены, но нет локальной или глобальной установки, не должна ли npm install установить ее? Или нет?
Если это так, то почему у меня в файле package.json указан узел-sass в качестве dep, и запуск npm install не устранил это?
Вот мой package.json для справки:
{
"name": "spanner-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.0.3",
"@angular/common": "^6.0.3",
"@angular/compiler": "^6.0.3",
"@angular/core": "^6.0.3",
"@angular/forms": "^6.0.3",
"@angular/http": "^6.0.3",
"@angular/platform-browser": "^6.0.3",
"@angular/platform-browser-dynamic": "^6.0.3",
"@angular/router": "^6.0.3",
"core-js": "^2.5.4",
"node-sass": "^4.9.0",
"rxjs": "^6.0.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular/compiler-cli": "^6.0.3",
"@angular-devkit/build-angular": "~0.6.6",
"typescript": "~2.7.2",
"@angular/cli": "~6.0.7",
"@angular/language-service": "^6.0.3",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1"
}
}
Мысли?