我正在使用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,所有文件都可以成功缩小。 请知道出了什么问题的人给我一些帮助,这让我很生气! 非常感谢
答案 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));
});