项目中有个html压缩的需求,就像这个网站1、网站2,而npm上刚好也有对应的html-minifer package,尝试着加到项目中,发现在import后,报错
process is not defined
nodejs 有process,但是web没有,那么肯定得需要注入process变量才能让web正常运行,于是网上各种查资料,最初想到的是定义这个process变量,
new webpack.DefinePlugin({
process: {
platform: 'win32',
browser: true,
},
}),
发现死活都识别不到,经过各种询问查阅资料,正确的处理方式:
new webpack.ProvidePlugin({
process: 'process/browser',
}),
其实nodjs官方也有对这块的处理process package
process这边正常了,但是有开始报错fs的问题,发现根源是在ugly-js这个package,因为html-minifer依赖了这个package,而这个package之前使用过,他就是非常依赖nodejs环境,就算fallback
中替换web相关的package,也会有后续各种依赖的问题,
resolve: {
fallback: {
'fs': false, // require.resolve('browserify-fs'),
},
},
因为我目前只有html的需求,我看到他使用的html相关的package是html-minifier-terser,就选择项目中仅仅使用这个package就行了。
折腾完毕,OK!
网友评论