Background

大约30分钟前我才开始使用grunt.所以请容忍我.

但我有一个相当简单的脚本,它将查看我的js,然后为我将所有内容压缩到一个文件中.

Code

"use strict";
module.exports = function (grunt) {

    // load all grunt tasks
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                beautify: true,
                report: 'gzip'
            },
            build: {
                src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'],
                dest: 'docroot/js/main.min.js'
            }
        },
        watch: {
            options: {
                dateFormat: function(time) {
                    grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString());
                    grunt.log.writeln('Waiting for more changes...');
                }
            },
            js: {
                files: '<%= uglify.build.src %>',
                tasks: ['uglify']
            }
        }
    });

    grunt.registerTask('default', 'watch');

}

Question

我的主菜.每次编译都会包含min.js.这意味着我的min.js将获得2x、4x、8x、16x等.解决这个问题的最佳方法是添加一个异常并忽略main.min.js

推荐答案

在src数组的end中,添加

'!docroot/js/main.min.js'

这将排除它.这个将其转换为排除.

http://gruntjs.com/api/grunt.file#grunt.file.expand

匹配以开始的模式的路径!将从返回的数组中排除.模式是按顺序处理的,所以包含和排除顺序很重要.

这并不特定于grunt uglify,但任何使用grunt约定指定文件的任务都将以这种方式工作.

不过,作为一般建议,我建议将生成的文件放在源文件之外的其他地方.比如在根目录dist文件夹中.

Node.js相关问答推荐

在渲染上部署Node.js服务器时出错:MODULE_NOT_FOUND

(0,core_1.default)不是使用@middy/core的lambda处理程序上的函数

后端如何保护数据不被用户提取其他用户的数据?

Webpack:如何避免导出函数的重命名?

如何使用对象中的常量值验证字符串字段?

express 和 mongoose 的新密码不正确

Fly.io 启动问题:无法从源获取图像或构建错误:构建错误:连接期间出错:发布...

Node.js 大文件上传到 MongoDB 阻塞了事件循环和工作池

npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048

对不同对象中的函数使用相同的键时,V8 中的函数调用缓慢

TypeError:请求路径包含未转义的字符,我该如何解决这个问题

为什么 Node 控制台不显示功能代码?

如何从 npm 注册表中删除 npm 包?

npm 出现无法读取依赖项错误

node.js 中存储的模块变量在什么范围内?

__dirname 未在 Node 14 版本中定义

使用 Monit 而不是基本的 Upstart 设置有什么好处?

AWS Lambda 函数写入 S3

webpack-dev-server 找不到模块webpack

FireStore 如果不存在则创建一个文档