Cannot read property 'entry' of undefined
var?htmlWebpackPlugin?=?require('html-webpack-plugin'); //commom.js的模塊化輸出 module.exports={ entry:{ main:'./src/script/main.js', a:?'./src/script/a.js', b:?'./src/script/b.js', c:?'./src/script/c.js' },//入口文件 output:{ path:'./dist', filename:'js/[name]-[chunkhash].js', //?publicPath:"http://cdn.com/" }, plugins:[ new?htmlWebpackPlugin({ filename:'a.html', template:'index.html', title:"webapck?is?a", inject:'body', chunks:['main','a'] ?}), new?htmlWebpackPlugin({ filename:'b.html', template:'index.html', title:"webapck?is?b", inject:'body', chunks:['b'] }), new?htmlWebpackPlugin({ filename:'c.html', template:'index.html', title:"webapck?is?c", inject:'body', chunks:['c'] }) ] };
除了a頁面可以生成,b.html和c.html都有錯誤
Html?Webpack?Plugin: <pre> ??TypeError:?Cannot?read?property?'entry'?of?undefined ?? ??-?index.html:17237? ????D:/dwf/study/webpacklearn/index.html:17237:42 ?? ??-?index.html:17240?module.exports ????D:/dwf/study/webpacklearn/index.html:17240:3 ?? ??-?index.js:265? ????[webpacklearn]/[html-webpack-plugin]/index.js:265:16 ?? ??-?util.js:16?tryCatcher ????[webpacklearn]/[bluebird]/js/release/util.js:16:23 ?? ??-?promise.js:512?Promise._settlePromiseFromHandler ????[webpacklearn]/[bluebird]/js/release/promise.js:512:31 ?? ??-?promise.js:569?Promise._settlePromise ????[webpacklearn]/[bluebird]/js/release/promise.js:569:18 ?? ??-?promise.js:606?Promise._settlePromiseCtx ????[webpacklearn]/[bluebird]/js/release/promise.js:606:10 ?? ??-?async.js:138?Async._drainQueue ????[webpacklearn]/[bluebird]/js/release/async.js:138:12 ?? ??-?async.js:143?Async._drainQueues ????[webpacklearn]/[bluebird]/js/release/async.js:143:10 ?? ??-?async.js:17?Immediate.Async.drainQueues ????[webpacklearn]/[bluebird]/js/release/async.js:17:14 ?? </pre>
2017-03-15
是不是你的 index.html 文件里用 script 引用了 js?如果是,注釋或刪除后重新運行應(yīng)該就好了~
2018-05-10
必須刪掉模板中script標簽引入,注釋都不好使
2017-12-20
webpack模板中的注釋也被視為模塊,他需要保證注釋的準確性,所以,如果在注釋中引入的chunks中沒有響應(yīng)的內(nèi)容,就會報錯。
我的a.html是ok的,但是b,c都是不行,就是如此。
2017-09-21
有可能是你配置文件里寫了excludeChunks['main'],而你在html中寫的是?compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length)].source() ?這樣也會報錯,與excludeChunks 沖突?
2017-08-31
確實 注釋了script之后運行不成功 刪掉script才可以?
2017-08-11
chunks:['main','b'] ? 必須引入main,我是因為b和c都沒引入才報錯的
2017-08-05
你需要在b和c里也chunks:['b','main']?chunks:['c','main']
2017-07-31
老師用的是excludeChunks,我用的是chunks,報錯后的解決方法:在webpack.config.js中chunks:["b","main"]和chunks:["c","main"]都加上“main”就好了。得出的結(jié)論,模板html文件中如果有固定引入某個打包后的js文件,那么相應(yīng)的調(diào)用模板文件的配置中就要在chunks中加入固定的js文件在entry中對應(yīng)的key。如:
<%=
? ? ? /*這里就引入了固定的main對應(yīng)的打包后的js文件*/ compilation.assets[htmlWebpackPlugin.files.chunks.main.entry.substr(htmlWebpackPlugin.files.publicPath.length)].source()
? ?%>
那么webpack.config.js中chunks:["b","main"],就要寫"main",不然就報錯誤:
Cannot read property 'entry' of undefined
2017-07-30
也有同樣的疑問
2017-07-15
好吧,雖然刪除template中的script確實可以解決問題,但是如果確實需要在template中插入script標簽?zāi)?,到底怎么破?望有人能解答一下這個問題