【问题标题】:gulp-install not install the dependencies with vinyl filegulp-install 不使用乙烯基文件安装依赖项
【发布时间】:2016-08-15 16:21:48
【问题描述】:

我是 gulp 插件的初学者。我想通过合并的 package.json 安装依赖项。代码如下。

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 毫秒后完成“安装依赖项”

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:

npm WARN notsup 与您的操作系统或架构不兼容:fsevents@1.0.11

【问题讨论】:

    标签: javascript npm gulp gulp-install


    【解决方案1】:

    你的操作系统是什么?

    你可能会发现类似here

    听起来您可以尝试卸载所有内容并从头开始(或者只是删除您的 node_module 文件夹并使用 npm install)。不过不确定,很大程度上取决于您的操作系统,具体取决于错误本身。

    【讨论】:

    • 操作系统:win10,节点:v5.9.1,npm:3.8.7
    • 在此处查看:github.com/npm/npm/issues/12185 目前没有答案,但我正在输入或几天后可能会有答案...您是否尝试删除 node_module 文件夹,然后运行 ​​npm install ?
    • npm install 只需安装我的 devDependencies 和核心依赖项。当 package.json 的一部分被收集和合并后,其他依赖项将由 gulp 任务安装。
    • 是的,我明白了,但根据 github.com/npm/npm/issues,这对某些人有用。无论如何,我也在使用 gulp 没有错误,我会尝试重现你的错误,然后我会告诉你。
    • 我调试了这个,我发现gulp-install只是在乙烯基文件路径目录中执行npm install,但在磁盘中没有找到package.json文件。也许它会产生这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2015-04-20
    • 2013-11-20
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多