Следующее происходит на моем производственном сервере (созданном мной), но не на моем сервере разработки (Homestead с некоторыми дополнениями).
Я правильно установил NVM на своем производстве, выполнив обычную установку с некоторыми дополнениями:
wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | bash
source ~/.nvm/nvm.sh
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
sudo chown -R $(whoami) $HOME/.nvm/
nvm install 10.7.0 && nvm alias default 10.7.0 && nvm use 10.7.0
После выполнения следующих действий я проверяю, что все существует, запустив:
nvm ls
node -v
При развертывании моего проекта веб-интерфейса (который использует Angular CLI, Gulp), иногда (много раз) сборка ломается, потому что вдруг не может найти узел, почему?потому что как-то в середине операции что-то просто стирает определенные файлы из папки .nvm
(включая саму nvm.sh
).
Как я уже говорил - это не происходит на локальном сервере разработки.
Сценарий развертывания выполняет следующие действия:
npm uninstall -g angular-cli
npm uninstall -g @angular/cli
npm uninstall -g gulp
npm uninstall -g gulp-sass
npm cache verify
npm install -g @angular/cli@6.0.8
npm install -g gulp@latest
npm install -g gulp-sass@latest
npm install
ng build --base-href=/app/ --deploy-url=/app/js/ --prod
gulp
Файл gulp выглядит следующим образом:
var gulp = require('gulp');
var runSequence = require('run-sequence');
var size = require('gulp-size');
var del = require('del');
var outputFolder = '../backend-mallabee/public/app';
gulp.task('default', function() {
runSequence(['copy-html', 'copy-favicon', 'copy-js-files', 'copy-js-source-map-files', 'copy-assets'], 'remove-dist-folder');
});
gulp.task('copy-html', function() {
return gulp.src(['dist/index.html']).pipe(gulp.dest(`${outputFolder}`));
});
gulp.task('copy-favicon', function() {
return gulp.src(['dist/favicon.ico']).pipe(gulp.dest(`${outputFolder}`));
});
gulp.task('copy-js-files', function() {
return gulp
.src(['dist/*.js'])
.pipe(
size({
gzip: true,
showFiles: true
})
)
.pipe(gulp.dest(`${outputFolder}/js`));
});
gulp.task('copy-js-source-map-files', function() {
return gulp.src(['dist/*.js.map']).pipe(gulp.dest(`${outputFolder}/js`));
});
gulp.task('copy-assets', function() {
return gulp.src(['dist/assets/**/*']).pipe(gulp.dest(`${outputFolder}/assets`));
});
gulp.task('remove-dist-folder', function() {
return del('./dist');
});
Вот изображение папки nvm после запуска сценария развертывания:
И изображение папки nvm, как это должно быть:
Как вы можете видеть файлы(и папки), которые являются главными важными файлами, просто внезапно удаляются из системы, такие как .nvm.sh
& node
, просто захватывают существующие.