首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当模块具有导出时,Js缩减不起作用

当模块具有导出时,Js缩减不起作用
EN

Stack Overflow用户
提问于 2020-06-04 22:12:28
回答 1查看 293关注 0票数 2

当js文件被最小化时,我确实有以下错误

代码语言:javascript
运行
复制
/* Minification failed. Returning unminified contents.
(36307,7-8): run-time error JS1010: Expected identifier: .
(36307,7-8): run-time error JS1195: Expected expression: .
(36817,7-8): run-time error JS1010: Expected identifier: .
(36817,7-8): run-time error JS1195: Expected expression: .
(36820,7-8): run-time error JS1010: Expected identifier: .
(36820,7-8): run-time error JS1195: Expected expression: .
 */

下面的JavaScript文件脚本文件,但是我发现包含"module.export“的JavaScript不会被缩小,我也使用在线工具进行缩小,但缩小的文件不包含"module.export”,它在缩小过程中被删除。如何解决包含module.export的JavaScript文件的缩小问题

代码语言:javascript
运行
复制
(function e(t, n, r) {

    module.exports = FilterCSS;

}, {
    "./default": 7,
    "./parser": 9,
    "./util": 10
}], 7: [function(require, module, exports) {
        /**
         * cssfilter
         *
         * @author ??<leizongmin@gmail.com>
         */

        function getDefaultWhiteList() {
            // ??????:
            // true: ?????
            // Function: function (val) { } ??true???????,?????????
            // RegExp: regexp.test(val) ??true???????,?????????
            // ??????????????
            var whiteList = {};

            whiteList['align-content'] = false; // default: auto
            whiteList['align-items'] = false; // default: auto

            *
            *
            @param {
                String
            }
            name
                *
                @param {
                    String
                }
            value
                *
                @param {
                    Object
                }
            options
                *
                @return {
                    String
                }
                */

            function onAttr(name, value, options) {
                // do nothing
            }

            /**
             * ???????????????
             *
             * @param {String} name
             * @param {String} value
             * @param {Object} options
             * @return {String}
             */
            function onIgnoreAttr(name, value, options) {
                // do nothing
            }

            var REGEXP_URL_JAVASCRIPT = /javascript\s*\:/img;

            /**
             * ?????
             *
             * @param {String} name
             * @param {String} value
             * @return {String}
             */
            function safeAttrValue(name, value) {
                if (REGEXP_URL_JAVASCRIPT.test(value)) return '';
                return value;
            }


            exports.whiteList = getDefaultWhiteList();
            exports.getDefaultWhiteList = getDefaultWhiteList;
            exports.onAttr = onAttr;
            exports.onIgnoreAttr = onIgnoreAttr;
            exports.safeAttrValue = safeAttrValue;

        }, {}], 8: [function(require, module, exports) {
        /**
         * cssfilter
         *
         * @author ??<leizongmin@gmail.com>
         */

        var DEFAULT = require('./default');
        var FilterCSS = require('./css');


        /**
         * XSS??
         *
         * @param {String} css ????CSS??
         * @param {Object} options ??:whiteList, onAttr, onIgnoreAttr
         * @return {String}
         */
        function filterCSS(html, options) {
            var xss = new FilterCSS(options);
            return xss.process(html);
        }


        // ??
        exports = module.exports = filterCSS;
        exports.FilterCSS = FilterCSS;
        for (var i in DEFAULT) exports[i] = DEFAULT[i];

        // ???????
        if (typeof window !== 'undefined') {
            window.filterCSS = module.exports;
        }

    }, {
        "./css": 6,
        "./default": 7
    }], 9: [function(require, module, exports) {
            /**
             * cssfilter
             *
             * @author ??<leizongmin@gmail.com>
             */

            var _ = require('./util');
EN

回答 1

Stack Overflow用户

发布于 2021-08-30 13:36:53

试着这样做:

代码语言:javascript
运行
复制
['module'].exports = FilterCSS;

还有这一点:

代码语言:javascript
运行
复制
[module].exports = FilterCSS;

它对我很有效,但不知道为什么。在这个顿悟之前,我已经用全局变量解决了类似的问题,使用如下内容:

代码语言:javascript
运行
复制
window['module'].exports=......

但是,至少在我的例子中,模块不是全局的。不知道我是怎么想出来的,也不知道它是怎么工作的。我是javascript的新手。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62196822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档