将服务器任务添加到我的 gruntfile.js,其中包含用于连接到中间件代理的连接任务,但未找到

Adding server task to my gruntfile.js which contains connect task for connecting to middleware proxies, but not being found

我正在向我现有的 gruntfile 添加一个新的服务器任务,其中包含将内容构建到缩小文件中的唯一任务。我需要添加 server/serve 任务。我的服务器任务的目标是连接到中间件代理,以便在遇到 /web/* 时重定向到其他 url。我不断收到以下错误:

Running "server" task

Warning: Task "connect:server" not found. Use --force to continue.

任何帮助将不胜感激!

module.exports = function (grunt) {
    grunt.loadNpmTasks('grunt-connect-proxy');
    grunt.initConfig({
        connect: {
            server: {
                options: {
                    port: 8080,
                    hostname: 'localhost',
                    middleware: function (connect, options) {
                        var proxy = require('grunt-connect-proxy/lib/utils').proxyRequest;
                        return [
                            // Include the proxy first
                            proxy,
                            // Serve static files.
                            connect.static(options.base),
                            // Make empty directories browsable.
                            connect.directory(options.base)
                        ];
                    }
                },
                proxies: [
                    {
                        context: '/web/*',
                        host: 'blah.com',
                        port: 8080,
                        https: true,
                        secure: false,
                        changeOrigin: true
                    }
                ]
            }
        },
        pkg: grunt.file.readJSON('package.json'),
});

    grunt.registerTask('server', function (target) {
        grunt.task.run([
            'configureProxies:server',
            'connect:server'
        ]);
    });

日志:

C:\AltProject\webapp\WEB-INF\front-end\screening>grunt server --verbose
Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.

Registering "grunt-contrib-watch" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-watch\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-watch\package.json...OK
Loading "watch.js" tasks...OK
+ watch

Registering "grunt-contrib-concat" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-concat\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-concat\package.json...OK
Loading "concat.js" tasks...OK
+ concat

Registering "grunt-contrib-uglify" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-uglify\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-uglify\package.json...OK
Loading "uglify.js" tasks...OK
+ uglify

Registering "grunt-contrib-copy" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-copy\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-contrib-copy\package.json...OK
Loading "copy.js" tasks...OK
+ copy

Registering "grunt-concat-css" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-concat-css\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-concat-css\package.json...OK
Loading "concat_css.js" tasks...OK
+ concat_css

Registering "grunt-processhtml" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-processhtml\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-processhtml\package.json...OK
Loading "processhtml.js" tasks...OK
+ processhtml

Registering "rebase" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\rebase\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\rebase\package.json...OK
Loading "grunt-rebase.js" tasks...OK
+ rebase
Loading "gulp-rebase.js" tasks...OK
>> No tasks were registered or unregistered.

Registering "grunt-lineending" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-lineending\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-lineending\package.json...OK
Loading "lineending.js" tasks...OK
+ lineending

Registering "grunt-text-replace" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-text-replace\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-text-replace\package.json...OK
Loading "text-replace.js" tasks...OK
+ replace

Registering "grunt-connect-proxy" local Npm module tasks.
Reading C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-connect-proxy\package.json...OK
Parsing C:\AltProject\webapp\WEB-INF\front-end\screening\node_modules\grunt-connect-proxy\package.json...OK
Loading "connect_proxy.js" tasks...OK
+ configureProxies
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ build, server

Running tasks: server

Running "server" task
Warning: Task "connect:server" not found. Use --force to continue.

Aborted due to warnings.

我认为您缺少对 grunt-contrib-connect 的依赖并调用 grunt.loadNpmTasks('grunt-contrib-connect');。 grunt-connect-proxy 只是在其之上添加了代理中间件。