html5如何调用.so库,HtmlWebpackPlugin用的html的ejs模板文件中如何使用条件判断

折腾:

期间,已经有了思路了,但是不知道如何在ejs的html中写条件判断

想要实现类似于这样的效果:

15214232752a31bf22ee3e382b1e72f6.png

htmlwebpackplugin ejs template

没有找到要的。

参考:

倒是可以考虑,根据市dev还是prod去传入的参数,就是link的href添加的前缀

也是可以的。

支持if:

但是好像没有if else

此处,参考官网代码:

在webpack.config.js中添加了配置:

new HtmlWebpackPlugin({

template: ‘./src/index.template.ejs’,

// minify: { collapseWhitespace: true },

filename: ‘index.html’,

// inject: true,

hash: true,

isProdEnv: isProd

}),

的情况下,index.template.ejs中写上:

是可以在htmlWebpackPlugin.options.isProdEnv为true,生成:

9b3c1dd4bf7aeb7a33ebabef385e6297.png

在:htmlWebpackPlugin.options.isProdEnv为false,生成:

的。

当然,其实此处,更好的做法是:

直接传入,此处的href中的地址,需要添加的前缀,就可以了。

然后改为:

let wdsListenPort = 4000;

new HtmlWebpackPlugin({

template: ‘./src/index.template.ejs’,

// minify: { collapseWhitespace: true },

filename: ‘index.html’,

// inject: true,

hash: true,

assetsPrefix: isProd ? ” : `http://localhost:${wdsListenPort}/`

}),

assets/lib/bootstrap/bootstrap.min.css”>

npm run build,为production时,即可输出:

adcb11c997ec8818ea074a94a3d3c5b5.png

【总结】

此处用如下方式,实现了想要的效果:

当是开发环境时,从ejs模板生成的html中href的css,js都是:http://localhost:4000/assetsxxx的地址,

当是生产环境时,从ejs模板生成的html中href的css,js都是:assets/xxx的地址,

webpack.config.js

var HtmlWebpackPlugin = require(‘html-webpack-plugin’);

let isProd = (process.env.NODE_ENV === ‘production’);

let wdsListenPort = 4000;

new HtmlWebpackPlugin({

template: ‘./src/index.template.ejs’,

// minify: { collapseWhitespace: true },

filename: ‘index.html’,

// inject: true,

hash: true,

assetsPrefix: isProd ? ” : `http://localhost:${wdsListenPort}/`

}),

4506a5e03e5607f77f65ff6ff759e5af.png

src/index.template.ejs

assets/lib/bootstrap/bootstrap.min.css”>

assets/lib/font-awesome/css/font-awesome.css”>

0f6e4efd49248bd45bf06ae96744be1d.png

通过package.json配置了:

“scripts”: {

“dev”: “cross-env NODE_ENV=development webpack-dev-server –progress –colors –hot –inline”,

“lint”: “eslint src”,

“clean”: “rm -rf build/ build.zip”,

“package”: “zip -r build.zip build/”,

“prebuild”: “npm run clean”,

“build”: “cross-env NODE_ENV=production webpack -p –progress –colors”,

“postbuild”: “npm run package”

},

然后就可以:

npm run build去生产环境编译,所以编译出来的href地址都是:

bc70dd1f819b77fa0cf79faeef7d17fe.png

npm run build去开发环境编译,所以编译出来的href地址都是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值