Javascript 如何仅使用uglifyjs将多个文件缩小为一个文件?
我曾尝试使用uglifyjs将javascript文件缩小为一个文件,但它不起作用。我使用$node uglifyjs.js来运行该文件。下面是uglify.js中的代码Javascript 如何仅使用uglifyjs将多个文件缩小为一个文件?,javascript,node.js,angular,express,uglifyjs,Javascript,Node.js,Angular,Express,Uglifyjs,我曾尝试使用uglifyjs将javascript文件缩小为一个文件,但它不起作用。我使用$node uglifyjs.js来运行该文件。下面是uglify.js中的代码 var fs = require('fs'); var uglifyjs = require('uglify-js'); var files = ['app.js', 'geolocation.service.js']; var result = uglifyjs.minify(fs.readFileSy
var fs = require('fs');
var uglifyjs = require('uglify-js');
var files = ['app.js', 'geolocation.service.js'];
var result = uglifyjs.minify(fs.readFileSync(files, 'utf8'));
console.log(result.code);
fs.writeFile("output.min.js", result.code, function(err){
if(err){
console.log(err);
} else {
console.log("File was successfully saved.");
}
});
运行此代码时,会收到以下错误消息:
fs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags),
mode);
^
TypeError: path must be a string
at TypeError (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.readFileSync (fs.js:397:15)
at Object.<anonymous> (C:\Users\HP\Desktop\uglify\uglify.js:7:33)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
at startup (node.js:134:18)
fs.js:549
返回binding.open(路径模块)\ makeLong(路径)、stringToFlags(标志),
模式);
^
TypeError:路径必须是字符串
at TypeError(本机)
在Object.fs.openSync(fs.js:549:18)
在Object.fs.readFileSync(fs.js:397:15)
反对。(C:\Users\HP\Desktop\uglify\uglify.js:7:33)
在模块处编译(Module.js:435:26)
在Object.Module.\u extensions..js(Module.js:442:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:311:12)
位于Function.Module.runMain(Module.js:467:10)
启动时(node.js:134:18)
如图所示,uglify.minify
要求您传入字符串或字符串列表
您的代码:
var result = uglifyjs.minify(fs.readFileSync(files, 'utf8'));
试图同时读取多个文件,但只接受一个文件
因此,请将代码更改为:
var filesContents = ['app.js', 'geolocation.service.js'].map(function (file) {
return fs.readFileSync(file, 'utf8');
})
var result = uglifyjs.minify(filesContents);
if (result.error) {
console.error("Error minifying: " + result.error);
}
fs.writeFile("output.min.js", result.code, function (err) {
if (err) {
console.error(err);
} else {
console.log("File was successfully saved.");
}
});
如图所示,uglify.minify
要求您传入一个字符串或一个字符串列表
您的代码:
var result = uglifyjs.minify(fs.readFileSync(files, 'utf8'));
试图同时读取多个文件,但只接受一个文件
因此,请将代码更改为:
var filesContents = ['app.js', 'geolocation.service.js'].map(function (file) {
return fs.readFileSync(file, 'utf8');
})
var result = uglifyjs.minify(filesContents);
if (result.error) {
console.error("Error minifying: " + result.error);
}
fs.writeFile("output.min.js", result.code, function (err) {
if (err) {
console.error(err);
} else {
console.log("File was successfully saved.");
}
});
fs.readFileSync(file[,options])
--file | |文件名或文件描述符
fs.readFileSync(file[,options])
--文件| |文件名或文件描述符
非常感谢。这完全成功了,非常感谢。这完全奏效了。