webpack.config.js
にglobパッケージがあり、entry
とoutput
を設定する必要があります。 例ルートディレクトリのwebpack.config.js
。
var webpack = require('webpack');
var glob = require('glob');
//Generate object for webpack entry
//rename './app/modules/module1/script.js' -> 'module1/script'
var entryObject = glob.sync('./app/modules/**/script.js').reduce(
function (entries, entry) {
var matchForRename = /^\.\/app\/modules\/([\w\d_]+\/script)\.js$/g.exec(entry);
if (matchForRename !== null && typeof matchForRename[1] !== 'undefined') {
entries[matchForRename[1]] = entry;
}
return entries;
},
{}
);
module.exports = {
...
entry: entryObject,//{'moduleName/script': './app/modules/moduleName/script.js', ...}
output: {
path: __dirname + '/public/js',
filename: '[name].js'//'moduleName/script.js', [name] - key from entryObject
}
...
};
「『をFS』を解決することはできません」のようなあなたはFSとエラーになります場合は、他のentryObjectを使用してパブリックscript.jsに<other files>
からあなたのファイルをバンドルすることができ、オプションも
node: {
fs: "empty"
}
追加。
var entryObject = glob.sync('./app/modules/**/*.js').reduce(
function (entries, entry) {
var matchForRename = /^\.\/app\/modules\/([\w\d_]+)\/.+\.js$/g.exec(entry);
if (matchForRename !== null && typeof matchForRename[1] !== 'undefined') {
var entryName = matchForRename[1] + '/script';
if (typeof entries[entryName] !== 'undefined') {
entries[entryName].push(entry);
} else {
entries[entryName] = [entry];
}
}
return entries;
},
{}
);
webpack設定ファイルはJavaScriptです。ディレクトリ構造を読み、必要なパスを構築することができます。 –
あなたはこれまでどのように見つけましたか? – chh