一般情况下使用webpack对于entry属性只是设置一个路径+文件名
//输入当前路径下的app.js文件,输出到output文件夹下output-file.js
module.exports = {
//路径path.join(__dirname, '/app.js')
entry: './app.js',
output: {
path: './output',
filename: 'output-file.js'
}
}
其实entry有三种形式,除了上面用字符串,还可以使用对象和数组
对象entry
对象entry是最完整的形式,对象中的每一对属性对,都代表着一个入口文件。
key
key可以是简单的字符串,比如:’app’, ‘main’, ‘entry-1’等。并且对应着output.filename配置中的[name]变量
entry: {
//输入的是app.js文件
'app-entry': './app.js'
},
output: {
path: './output',
//[name]是app-entry,输出的文件是output目录下的app-entry.js
filename: '[name].js'
}
key还可以是路径字符串。此时webpack会自动生成路径目录,并将路径的最后作为[name]
entry: {
//输入app.js和deep-app.js文件
'path/of/entry': './deep-app.js',
'app': './app.js'
},
output: {
//在output目录下生成app.js和output->path->of->entry.js
path: './output',
filename: '[name].js'
}
value
value如果是字符串,而且必须是合理的node(require)函数参数字符串
//value如果是数组
entry: {
main:'./app.js',
vendor: ['jquery', 'lodash']
}
数组entry
entry: ['./app.js', 'lodash']
//等价于下面的对象形式:
entry: {
main: ['./app.js', 'lodash']
}