【问题标题】:Why is html-minifier telling me : Unknown option `--minifyJS'?为什么 html-minifier 告诉我:未知选项 `--minifyJS'?
【发布时间】:2017-05-16 11:46:15
【问题描述】:

问题:

我全局安装了uglify-js,我安装了html-minifier

缩小 HTML 效果很好,但是当我添加 --minifyJS 来缩小 javascript 时,它会失败并出现以下错误:

  error: unknown option `--minifyJS'

我做错了什么?


代码:

html-minifier --input-dir ./viewsCopy --output-dir ./views-minified --collapse-whitespace --html5 --minifyJS

参考:

https://www.npmjs.com/package/html-minifier


输出

<% include ../partials/header %> <div class="backgroundLogin"><div class="alertMessage"> <% if (errors.length > 0) { for (var i = 0; i < errors.length; i++) {%> <div class="alert alert-danger"> <%= errors[i].msg %> </div> <% } }%> </div><div class="alertMessage"><span class="alert alert-success containerMargins" id="successDiv"></span> <span class="alert alert-danger containerMargins" id="errorDiv"></span></div><div class="alertMessage"> <% if (success_msg != false){ %> <span class="alert alert-success containerMargins"> <%= success_msg %> </span> <% } %> <% if (error_msg != false){ %> <span class="alert alert-danger containerMargins"> <%= error_msg %> </span> <% } %> </div><div class="containerMargins"><h1 class="authTitle">Login</h1><form id="loginForm"><div class="form-group"><label>Email</label><input type="email" class="form-control" name="email" id="loginEmail" placeholder="You can't forget it :)" required></div><div class="form-group"><label>Password</label><input type="password" class="form-control" name="password" id="loginPassword" placeholder="We hope you didn't forget it ^^" required minlength="12"></div><div class="g-recaptcha" data-sitekey="6LcRrxMUAAAAANx-AXSdRLAo4Pyqfqg-1vuPSJ5c"></div><button class="btn btn-default" id="loginButton">Submit</button> <span class="userLinks"><a class="logLinks" href="/users/register">Register</a><a href="/users/password">Password?</a></span></form></div></div> <% include ../partials/indexScripts %> <script>$("#loginForm").submit(function(e) {

    e.preventDefault(); 
    var email = $("#loginEmail").val();
    var password = $("#loginPassword").val();

    $this = $(this);
    $.ajax({
        type: "POST",
        url: "login",
        data: $this.serialize()
    }).done(function(data) {

        if (data == true) {

            firebase.auth().signInWithEmailAndPassword(email, password ).then( authData => {

                var pendingRef = firebase.database().ref('pending/'+authData.uid.toString());
                var userRef =firebase.database().ref('users/'+authData.uid.toString());

                pendingRef.once('value', function(snapshot){

                    if(snapshot.val() == null) {

                        localStorage.setItem("success_msg_local2", "You have logged in");
                        ("Success1 ");
                        window.location.href="/fun/index";

                    } else {
                        if (authData.emailVerified) {

                            userRef.set(snapshot.val());
                            pendingRef.remove();

                            localStorage.setItem('success_msg_local2', 'You have logged in');
                            ("Success2");

                            window.location.href="/fun/index";
                        }

                        else {

                            firebase.auth().signOut().then(function() {
                                localStorage.setItem('error_msg_local', 'Please confirm your email address. Check your inbox.');
                                window.location.href="/users/login";
                                ("Login Failed: ", error);

                            }, function(error) {

                            });
                        }

                    }
                });

            },function(error) { 

                var errorCode = error.code;
                var errorMessage = error.message;
                localStorage.setItem('error_msg_local', "Unknown user or password");
                window.location.href="/users/login";
                ("Login Failed: ", errorMessage, errorCode);

            });  
        }
        else {
            localStorage.setItem('error_msg_local',  'Recaptcha failed'); window.location.href = "/users/login";
        }
    });
});</script>

【问题讨论】:

  • 只是猜测,但您可能需要安装 UglifyJS? github.com/mishoo/UglifyJS2
  • @LennartHase 你读过我问题的第一行吗:D?
  • npm link . 在 Windows 重新启动系统上 - PATH 变量可能已更改
  • @DanielMizerski 目录路径很好,它们适用于 HTML 缩小。
  • 从 html-minifier 的--help --minify-js [value] Minify Javascript in script elements and on* attributes (uses uglify-js) 修饰符略有不同,应该是--minify-js 而不是你上面使用的--minifyJS

标签: javascript html node.js minify


【解决方案1】:

查看文档,该命令似乎应该是--minifyJS,但是,我快速浏览了--help 页面html-minifier,它表明以下内容;

--minify-js [value] Minify Javascript in script elements and on* attributes (uses uglify-js)

其中[value] 应设置为true

所以你的最终命令应该是

html-minifier --input-dir ./viewsCopy --output-dir ./views-minified --collapse-whitespace --html5 --minify-js true

如果 jQuery 是 HTML 文件的一部分,这似乎不会压缩 jQuery,因此将 javascript 放在外部文件中可能会有所帮助,或者替代缩小器可能能够实现您想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-07
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2010-11-20
    相关资源
    最近更新 更多