Я начинаю плагин gulp. Я хочу установить зависимости путем объединения package.json. Следующий код.gulp-install не устанавливает зависимости с виниловым файлом
gulp.task('install-dependencies', function() {
var through = require('through2');
var npm = require('npm');
var Promise = require('bluebird');
var file = require('gulp-file');
var install = require('gulp-install');
var path = require('path');
var npmLoad = Promise.promisify(npm.load);
var plugins = {};
//for test
var lastFile;
gulp.src([`${PATH.plugin}**/package.json`])
.pipe(through.obj(function parse_plugins(file, enc, cb) {
if (file.isNull()) {
cb();
return;
}
if (file.isStream()) {
this.emit('error', new gulpUtil.PluginError('package-concat', 'Streaming not supported'));
cb();
return;
}
let fileContent = {};
try {
fileContent = JSON.parse(file.contents.toString())
} catch (e) {
this.emit('error', new gulpUtil.PluginError('package-concat', `file '${file.path}' not a json file!`));
throw e;
}
plugins = Object.assign({}, plugins, fileContent.dependencies)
lastFile = file;
cb();
},
function install(cb){
let fileContent = {};
fileContent.name = "test";
fileContent.dependencies = plugins;
var file = new gulpUtil.File({
base: path.join(__dirname, './'),
cwd: __dirname,
path: path.join(__dirname, './package.json'),
contents: new Buffer(JSON.stringify(fileContent))
});
this.push(file);
cb();
}
))
.pipe(install());
})
Но, зависимости не установлены, как ожидалось. И журнал как следует.
[14:50:37] Запуск 'установить-зависимость' ...
[14:50:37] Закончено 'установить зависимости' после 205 мса
НПМ WARN опционального Пропуска не удалось необязательных зависимостей/сторож/fsevents:
НПМ WARN notsup Не совместим с вашей операционной системы или архитектуры: [email protected]
OS: win10, Node: v5.9.1, npm: 3.8.7 – user2530403
Посмотрите здесь: https://github.com/npm/npm/issues/12185 На данный момент ответа нет, но может быть один, когда я набираю или через несколько дней ... Вы пытались удалить папку ** node_module **, а затем запустить 'npm install'? – kazu
'npm install' просто установите мои devDependencies и основные зависимости. другие зависимости будут устанавливаться с помощью задачи gulp, когда часть package.json будет собрана и объединена. – user2530403