我想知道是否可能构建一个包含一些JavaScript文件但没有依赖项的捆绑包?
我想要小型的捆绑包,其中包含React组件(在我的情况下,每个React组件都由几个React组件构建而成,例如评论组件包括评论框、列表和表单), 我可以通过在webpack中指定几个入口点来将React组件拆分为单独的文件,但如果我有: 1. 组件评论 2. 组件新闻通讯 并且它们都需要ReactDOM,生成的文件将有大约600kb大小,而我的React组件仅包含约100行JavaScript代码。
我希望有另一个文件,其中包含所有来自“require('react-dom')”的代码以及那两个仅包含React组件代码的文件。这是可能的吗?
我的当前设置:
'use strict';
import path from 'path';
import CommonsChunkPlugin from "webpack/lib/optimize/CommonsChunkPlugin";
module.exports = {
entry: {
app: "./app.js",
newsletter: "./components/renderers/newsletter.renderer.js",
comment: "./components/renderers/comment.renderer.js"
},
output: {
path: path.join(__dirname),
filename: "built/[name].entry.js"
},
devtool: 'sourcemaps',
cache: true,
debug: true,
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: [/(node_modules)/],
loader: 'babel'
}
],
resolve: {
extensions: ['', '.js', '.jsx']
}
},
plugins: [
new CommonsChunkPlugin({
name: "comment.js",
chunks: ["comment", "app"],
minChunks: 2
}),
new CommonsChunkPlugin({
name: "newsletter.js",
chunks: ["newsletter", "app"],
minChunks: 2
})
]
};
Comment.renderer.js:
import CommentBox from './../comment/commentBox';
ReactDOM.render(
<CommentBox/>,
document.getElementById("comment")
);
Newsletter.renderer.js:
import Newsletter from './../newsletter/newsletter';
ReactDOM.render(
<Newsletter/>,
document.getElementById("newsletter")
);
app.js:
'use strict';
import React from 'react';
import ReactDOM from 'react-dom';
import client from './lib/client';