Nodejs + connect-assetmanager + uglifyJs

时间:2012-07-19 09:03:19

标签: node.js assets uglifyjs

我正在使用nodejs(v0.8.2)和connect-assetmanager中间件来使用uglifyJs(v1.3.2)捆绑和缩小我的js文件。我的配置就像 `

var assets = 
    {
    'loginJs':{
        'debug': false,
        'route': /\/js\/login.js/
        , 'path': './public/scripts/'
        , 'dataType': 'javascript'
        , 'files': [
            'configs.js',
            'WMTX.Web.Library.js',
            'sso.js',
            'index.js'
        ]
        ,'postManipulate': {
                 '^': [
                assetHandler.uglifyJsOptimize
            ]
        } 
    },
    assetManager = require('connect-assetmanager'),
    assetsManagerMiddleware = assetManager(assets);
    app.configure(function(){
    app.use("/", assetsManagerMiddleware, express.static(o.paths.root));
});

`

但是当我启动应用程序时,发生了错误:

  

at new JS_Parse_Error(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:263:22)       在js_error(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:271:15)       at parse_error(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:367:17)       在Object.next_token [作为输入](E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:613:17)       在下一个(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:718:37)       在Object.parse(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ node_modules \ uglify-js \ lib \ parse-js.js:704:19)       在Array.uglifyJsOptimize [as 0](E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager-handlers \ lib \ handlers.js:57:26)       在修改时(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager \ lib \ assetmanager.js:275:42)       在module.exports.manipulate(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager \ lib \ assetmanager.js:281:7)       在Function.module.exports.generateCache.settings.forEach.userAgentMatches.forEach.content(E:\ work \ siteexV2 \ IDE \ node_modules \ connect-assetmanager \ lib \ assetmanager.js:231:11)

我尝试在命令行中使用uglifyJs缩小这些js,所有文件都可以成功缩小。 请知道出了什么问题的人给我一些帮助,这让我很生气! 非常感谢

1 个答案:

答案 0 :(得分:-1)

我对connect-assetmanager不熟悉,但代码中有一些语法错误。

据我了解你要做什么,你忘了用分号结束你的“资产”声明。调用require()后,您似乎正在做同样的事情。这是更正后的代码:

var assets = 
   {
   'loginJs':{
       'debug': false,
       'route': /\/js\/login.js/,
       'path': './public/scripts/',
       'dataType': 'javascript',
       'files': [
           'configs.js',
           'WMTX.Web.Library.js',
           'sso.js',
           'index.js'
       ],
       'postManipulate': {
           '^': [assetHandler.uglifyJsOptimize]
       }
   }; // <- note the semicolon

assetManager = require('connect-assetmanager'); // <- and here
assetsManagerMiddleware = assetManager(assets);

app.configure(function() {
    app.use("/", assetsManagerMiddleware, express.static(o.paths.root));
});