标签: uglifyjs

准备客户端Coffeescript:编译,uglifying gzipping

在服务器端,我使用的是Connect和Socket.IO.我想提供我的客户端代码(也是CofeeScript)来编译(到JavaScript),uglyfied和gzipped.我找了Conenct中间件来做这件事,发现了uglify-js-middleware和gzippo.

但是我不确定将它转换为JavaScript的好方法是什么(没有API或什么?)以及我是否应该为每一步使用临时目录以便我可以使用uglify-js-middleware的src和dest选项和gzippo或是否有更好的方法来管理所有这些事情.

这可以在启动我的应用程序时完成,因此我不关心检查或任何事情.我可能会以某种方式使用Cake,但我真的不想为此添加一个额外的脚本,如果我可以管它,那将是很酷的,所以我不需要临时目录.

是否有某种中间件可以完成所有这些?我真的不认为我是第一个想要这样做的人.

哦,也许客户端目录中的CofeeScript可以组合成一个文件,但我想这不是一个真正的问题.

connect node.js coffeescript uglifyjs

5
推荐指数
1
解决办法
2881
查看次数

usemin定义自定义步骤选项

我有一个运行concat的gruntfile和带有特定选项的uglify(即mangle toplevel变量),然后我使用sed来更新index.html中对缩小文件的引用.由于sed,这个解决方案有效但不易维护.我试图使用usemin,但我无法弄清楚如何用uglifyjs的正确选项定义我自己的自定义步骤,而doco缺乏示例来做到这一点.我尝试使用之前写过的相同的uglify任务:

   uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
        mangle: {
            except: ['$', 'd3'],
            toplevel: true
        }
      },
      build: {
        src: 'demo/js/<%= pkg.name %>.js',
        dest: 'demo/js/<%= pkg.name %>.min.js'
      }
    },
    useminPrepare : {
        html : 'src/index.html',
        options: {
            flow: {
                steps: {'js' : ['uglify'] }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

Warning: Cannot find module 'path-to-module\node_modules\grunt-usemin\lib\config\uglify' Use --force to continue.

是否可以这样做,如果是这样,我在这里做错了什么?

uglifyjs gruntjs grunt-usemin

5
推荐指数
1
解决办法
1289
查看次数

我应该在缩小后将我的代码丢失吗?

我有一些javascript在缩小之前通过了linter,但之后没有.我应该担心错误/警告,如:

"Expected an assignment or function call and instead saw an expression"
"Use '!==' to compare with 'null'"
"Don't make functions within a loop"
"Missing '()' invoking a constructor."
"Expected a conditional expression and instead saw an assignment"
"Confusing use of '!'"
"A leading decimal point can be confused with a dot: '.5'"
"Expected an operator and instead saw ','"
"Expected an identifier and instead saw '}'"
"Expected ')' to match '(' from line 9 and instead saw '{'"
"Expected …
Run Code Online (Sandbox Code Playgroud)

javascript jslint uglifyjs jshint

5
推荐指数
1
解决办法
1606
查看次数

Windows 7:npm uglifyjs“不被识别为内部或外部命令”

我安装了 npm 2.15.9,当我打开命令提示符时,在任何地方都可以正常工作。

我(据称)通过键入安装了 uglifyjs

npm install -g uglifyjs
Run Code Online (Sandbox Code Playgroud)

我尝试使用和不使用 -g,然后在我想使用它的文件夹中运行它。即使这样做并且没有收到任何错误,在 CMD 终端中键入“uglifyjs”或“node uglifyjs”也会返回标准错误消息 - uglifyjs 未被识别为内部或外部命令、可运行的程序或批处理文件。”

我究竟做错了什么?

编辑:是的,我尝试在每一步关闭并重新打开 CMD 窗口。

node.js npm uglifyjs

5
推荐指数
2
解决办法
3654
查看次数

如何使用 Webpack 丑化 Typescript 文件

我有一个 webpack 配置,它可以与 typescript 完美配合,直到我必须缩小输出包。我有一个项目正在逐步更新为 typescript - 目前一个文件已迁移到 typescript 并且当我运行 babel-node 和我的开发包(它不使用 Uglify 来缩小 js)时它可以正常工作。但是,只要我运行我的 prod 包,我就会收到以下错误:

ERROR in main.ab0b2e37030c63351bb8.js from UglifyJs
SyntaxError: Unexpected token: name (App) [./components/App.ts:12,0]
Run Code Online (Sandbox Code Playgroud)

这是我的 webpack 配置:

ERROR in main.ab0b2e37030c63351bb8.js from UglifyJs
SyntaxError: Unexpected token: name (App) [./components/App.ts:12,0]
Run Code Online (Sandbox Code Playgroud)

App.ts 看起来像这样:

const config = {
  context: ROOT,

  output: {
    path: path.resolve(__dirname, '../build/public/assets'),
    publicPath: '/assets/',
    sourcePrefix: '  ',
  },

  module: {
    loaders: [
      {
        test: /\.tsx?$/,
        loader: "awesome-typescript-loader"
      },
      {
        enforce: "pre",
        test: /\.js$/,
        loader: "source-map-loader"
      },
      { …
Run Code Online (Sandbox Code Playgroud)

javascript uglifyjs typescript webpack

5
推荐指数
1
解决办法
4767
查看次数

错误:找不到uglifyjs

我想通过命令行自动缩小文件夹。然后我装了npm install -g minify-all,然后minify-all /opt/myapp/。它给:

minify-all /opt/myapp/
found file: /opt/myapp/addin_online/css/Common.css
/usr/local/lib/node_modules/minify-all/node_modules/node-minify/lib/node-minify.js:104
          throw new Error(bin + ' not found !');
          ^

Error: uglifyjs not found !
    at getPath (/usr/local/lib/node_modules/minify-all/node_modules/node-minify/lib/node-minify.js:104:17)
    at Object.compress (/usr/local/lib/node_modules/minify-all/node_modules/node-minify/lib/node-minify.js:132:27)
    at Object.minify (/usr/local/lib/node_modules/minify-all/node_modules/node-minify/lib/node-minify.js:83:10)
    at /usr/local/lib/node_modules/minify-all/index.js:30:13
    at /usr/local/lib/node_modules/minify-all/index.js:14:13
    at Array.forEach (native)
    at walk (/usr/local/lib/node_modules/minify-all/index.js:10:36)
    at /usr/local/lib/node_modules/minify-all/index.js:16:13
    at Array.forEach (native)
    at walk (/usr/local/lib/node_modules/minify-all/index.js:10:36)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这一问题?是minify-all使用正确的包装吗?

编辑1:我尝试过sudo npm install uglify-js -g

/usr/local/bin/uglifyjs -> /usr/local/lib/node_modules/uglify-js/bin/uglifyjs
/usr/local/lib
??? uglify-js@3.0.11 
  ??? commander@2.9.0 
  ? ??? graceful-readlink@1.0.1 
  ??? source-map@0.5.6 
Run Code Online (Sandbox Code Playgroud)

和 …

minify node.js npm uglifyjs

5
推荐指数
1
解决办法
2915
查看次数

如何在 Angular 4.0 中使用正则表达式设置 UglifyJsPlugin 来修改变量

我想丑化 Angualr 4 输出文件并修改以 my_ 开头的特定变量。下面的命令行正是我想要的。我只是希望能够告诉 angular-cli 的 webpack 中的 uglifyJs 插件做同样的事情。

> uglifyjs script.js --source-map "filename='script.js.map',includeSources,content=inline" -o script.js -m
-c toplevel --mangle-props \"regex=/^my_[^_]{1}/\" --name-cache uglify-name-cache.json
Run Code Online (Sandbox Code Playgroud)

目前,我使用弹出命令从 angular-cli 导出 webpack.config.js。但我只是找不到任何有关如何告诉自动生成文件的 uglifyJsplugin 正则表达式和名称缓存参数的文档。这两点对于我们的应用程序都至关重要。

From webpack.config.js produced by eject command:

new UglifyJsPlugin({
  "test": /\.js$/i,
  "extractComments": false,
  "sourceMap": true,
  "cache": false,
  "parallel": false,
  "uglifyOptions": {
    "output": {
      "ascii_only": true,
      "comments": false
    },
    "ecma": 5,
    "warnings": false,
    "ie8": false,
    "mangle": true,
    "compress": {}
  }
}),
Run Code Online (Sandbox Code Playgroud)

这是关于如何使用 angualr pop 捕获自动生成的 weppack.config 并修改它的博客文章。Angular-cli:如何忽略类名被缩小但找不到有关如何为 ugllify …

uglifyjs webpack angular

5
推荐指数
1
解决办法
3525
查看次数

带有死代码消除功能的 Webpack 树抖动是否适用于 node_modules?

考虑到这个Webpack 3.8.1配置。

// common
module.exports = {
        context: path.resolve(__dirname, './src'),
        entry: [
            'whatwg-fetch',
            './index'
        ],
        output: {
            path: path.resolve(__dirname, 'build/assets'),
            publicPath: '/assets/',
            filename: 'main.js'
        },
        plugins: [
            new CleanWebpackPlugin(['build']),
        ],
        module: {
            rules: [{
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                }
            }, {
                test: /\.(scss|css)$/,
                use: [{
                    loader: 'style-loader'
                }, {
                    loader: 'css-loader'
                }, {
                    loader: 'sass-loader'
                }],
            }, {
                test: /\.(png|jpg|gif|woff2|woff)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            limit: 8192
                        }
                    }
                ]
            }]
        } …
Run Code Online (Sandbox Code Playgroud)

uglifyjs ecmascript-6 webpack material-ui tree-shaking

5
推荐指数
1
解决办法
3187
查看次数

如何将 uglifyjs 3 mangle 选项与 toplevel 和 Reserverd 一起使用?

我有以下命令:

uglifyjs  main.js bar.js  -m  toplevel reserved=['$','addTo','exports']   -c --source-map -o out.js
Run Code Online (Sandbox Code Playgroud)

但它会抛出错误:

ERROR: ENOENT: no such file or directory, open 'reserved=[$,addTo,exports]'
    at Object.fs.openSync (fs.js:646:18)
    at Object.fs.readFileSync (fs.js:551:33)
Run Code Online (Sandbox Code Playgroud)

如何同时使用顶级选项(mangle 函数名称)和 -m 选项下保留的选项?我正在使用最新的 uglifyJs 和 Node 8.6 。

uglifyjs uglifyjs2

5
推荐指数
1
解决办法
1379
查看次数

Grunt.js&uglify将uglified代码附加到文件而不是重写它

我正在做一些自动化任务,我注意到grunt.js和uglify模块没有重写缩小的文件.每次我开始繁琐的任务时,他们都会附加新版本的代码.

module.exports = function(grunt) {

  grunt.initConfig({
    uglify  : {
      build : {
        src     : ['**/*.js', '!*.min.js'],
        cwd     : 'js/app/modules/',
        dest    : 'js/app/modules/',
        expand  : true,
        ext     : '.main.min.js',
      },
    }
  });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.registerTask('default', ['uglify']);
};
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能避免它?我只想要文件中最新版本的代码.

javascript uglifyjs gruntjs

4
推荐指数
1
解决办法
1052
查看次数