use*_*888 58 javascript node.js webpack
如何使用webpack在项目中设置多个文件输入/输出?
如果一个条目/输出中只有一个文件,我按照http://webpack.github.io/docs/tutorials/getting-started/ success compile ...
目录
app
webpack.config.js
./assets
././javascripts/Administrator/Article/Create/Base.js
././javascripts/Administrator/Article/Edit/Base.js
././javascripts/Account/Index/Base.js
././javascripts/Contact/Index/Base.js
...
Run Code Online (Sandbox Code Playgroud)
如何输出这样的?
././javascripts/Administrator/Article/Create/bundle.js
././javascripts/Administrator/Article/Edit/bundle.js
././javascripts/Account/Index/bundle.js
././javascripts/Contact/Index/bundle.js
Run Code Online (Sandbox Code Playgroud)
webpack.config.js
module.exports = {
entry: {
'AdministratorArticleCreate':['./assets/javascripts/Administrator/Article/Create/Base.js']
},
output: {
path:
}
// if only one file
// entry: "./assets/javascripts/Administrator/Article/Create/Base.js",
// output: {
// // path: __dirname,
// path: "./assets/javascripts/Administrator/Article/Create/",
// filename: "bundle.js"
// }
};
Run Code Online (Sandbox Code Playgroud)
Kan*_*nia 60
对于许多入口点,使用数组作为entry属性值:
entry: {
app: ['./app/main.js', '.lib/index.js'],
vendors: ['react']
}
Run Code Online (Sandbox Code Playgroud)
app并且vendors是数组,因此您可以根据需要放置尽可能多的文件路径.
对于输出案例:
output: {
path: staticPath,
filename: '[name].js'
}
Run Code Online (Sandbox Code Playgroud)
它[name]来自entry属性,所以如果我们有app和vendors作为属性,我们有2个输出文件 - app.js和vendors.js.
Pet*_*eng 49
如果要输出到多个目录,可以使用路径作为条目名称.例如,如果您想要此目录结构:
apps
??? dir1
? ??? js
? ??? main.js [entry 1]
? ??? bundle.js [output 1]
??? dir2
??? index.js [entry 2]
??? foo.js [output 2]
Run Code Online (Sandbox Code Playgroud)
然后在你的module.exports中试试这个:
{
entry: {
'dir1/js/bundle': path.resolve(__dirname, '/apps/dir1/js/main.js'),
'dir2/foo' : path.resolve(__dirname, '/apps/dir2/index.js')
},
output: {
path: path.resolve(__dirname, '/apps'),
filename: '[name].js'
},
...
}
Run Code Online (Sandbox Code Playgroud)
小智 22
真正为我解决的是:
entry: {
app : __dirname + "/app/views/app/app.js",
admin : __dirname + "/app/views/admin/admin.js"
}
output: {
path: __dirname + "/public",
filename: "[name].js"
},
Run Code Online (Sandbox Code Playgroud)
您可以使用全局同步模式检测多个条目并生成单独的输出文件。
把这个放到你的webpack.config.js(没有...)
const glob = require("glob");
...
module.exports = (env, options) => ({
...
entry: glob.sync("./javascripts/**/*.js").reduce((acc, item) => {
const path = item.split("/");
path.pop();
const name = path.join('/');
acc[name] = item;
return acc;
}, {}),
output: {
filename: "[name]/bundle.js",
path: path.resolve(__dirname, "")
},
...
});
Run Code Online (Sandbox Code Playgroud)
这“应该”为您提供所需的输出。
这个 webpack 插件web-webpack-plugin可以通过示例方式解决它。
\n\nAutoWebPlugin可以找到目录中的所有页面条目,然后自动WebPlugin为每个页面配置一个输出html文件,您可以按如下方式使用它:
网页包配置
\n\nmodule.exports = {\n plugins: [\n new AutoWebPlugin(\n // the directory hold all pages\n \'./src/\', \n {\n // the template file path used by all pages\n template: \'./src/template.html\',\n // javascript main file for current page,if it is null will use index.js in current page directory as main file\n entity: null,\n // extract common chunk for all pages and then put it into a file named common,if it is null then not do extract action\n // achieve by CommonsChunkPlugin\n commonsChunk: \'common\',\n // pre append to all page\'s entry\n preEntrys:[\'./path/to/file1.js\'],\n // post append to all page\'s entry\n postEntrys:[\'./path/to/file2.js\'],\n }),\n ]\n};\nRun Code Online (Sandbox Code Playgroud)\n\n源目录
\n\n\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 home\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ie_polyfill.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 login\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 polyfill.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 signup\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 template.html\nRun Code Online (Sandbox Code Playgroud)\n\n输出目录
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dist\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 common.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 home.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 home.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 ie_polyfill.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 login.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 login.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 polyfill.js\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 signup.html\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 signup.js\nRun Code Online (Sandbox Code Playgroud)\n\nAutoWebPlugin找到所有页面home login signup目录./src/,这三个页面home login signup将用index.js作主文件并输出三个html文件 home.html login.html signup.html`
| 归档时间: |
|
| 查看次数: |
49439 次 |
| 最近记录: |