Reputation: 192
I have 2 modes:
The common code
var HtmlWebpackPlugin = require('html-webpack-plugin');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const path = require("path");
module.exports = {
entry: "./src/index.js",
plugins: [new CleanWebpackPlugin(), new HtmlWebpackPlugin({
template: "./src/template.html"
})],
module: {
rules: [
{
test: /\.s?css$/i,
use: [
"style-loader", // Inject styles into DOM
"css-loader", // Turns css into commonJS
"sass-loader" // Turns sass into css
],
}
]
}
};
The production code
const path = require("path");
const common = require("./webpack.common");
const { merge } = require('webpack-merge');
module.exports = merge(common, {
mode: "production",
output: {
filename: "main.[contenthash].js",
path: path.resolve(__dirname, "dist")
},
});
The console log error:
knockout-min.js:79 Uncaught ReferenceError: Unable to process binding "if: function(){return displayMessage }"
Message: Unable to process binding "event: function(){return { mouseenter:$parent.enableMarker,mouseleave:$parent.disableMarker,click:$parent.hoverClick} }"
Message: $parent is not defined
at event (eval at parseBindingsString (knockout-min.js:74), <anonymous>:3:78)
at e (knockout-min.js:75)
at knockout-min.js:77
at init (knockout-min.js:99)
at knockout-min.js:79
at Object.K (knockout-min.js:41)
at knockout-min.js:79
at Object.C (knockout-min.js:11)
at q (knockout-min.js:78)
at l (knockout-min.js:76)
All of the libraries are loaded externally from cdns.
Upvotes: 3
Views: 962
Reputation: 192
I got it to work by adding minify: false, to HtmlWebpackPlugin. A solution with keeping production in minify will be great.
plugins: [new CleanWebpackPlugin(), new HtmlWebpackPlugin({
template: "./src/template.html",
minify: false,
})],
Upvotes: 3