我为Cordova构建编写了一个after_prepare钩子,它从最终构建中删除了node_modules文件夹:
#!/usr/bin/env node
/**
* The node modules we want to remove from the build prior to building
* @type {Array}
*/
var foldersToRemove = ["platforms/android/assets/www/node_modules", "platforms/ios/www/node_modules"];
var fse = require('fs-extra');
var path = require('path');
var rootdir = process.argv[2];
foldersToRemove.forEach(function(folder) {
var rmFolder = path.join(rootdir, folder);
fse.remove(rmFolder, function(err) {
if (err) {
return console.error(err);
} else {
console.log(rootdir);
console.log("fse folder removed success!")
}
});
});
Run Code Online (Sandbox Code Playgroud)
当我cordova prepare android -d在CLI中运行时,这对我有用,但在切换到iOS时,它失败并出现以下错误:
env:node\r:没有这样的文件或目录Hook失败,错误代码为127:
我试过只引用ios平台文件夹,它发出相同的错误消息.