系统部署常见问题汇总
引用文件路径问题
在前端代码中,尽量不要使用相对路径,可以采用配置文件+相对路径组合而成的绝对路径。
$.get("../data.json", function() {
//不要使用这种方式
});
// 可使用下面这种方式
var locationUrl = "100.100.10.10/sys/data/";
$.get(location + "data.json", function() {
});
前端代码兼容IE问题
如果代码中有使用ES2015+的新语法,在IE环境下可能不兼容,报语法错误,可以通过工具转换为ES5标准下的,可用工具包括Parcel,Babel等
IE不支持Promise问题
引入
<script src = "https://cdn.polyfill.io/v2/polyfill.min.js"></script>
或<script type="text/javascript" src ="https://cdn.polyfill.io/v2/polyfill.min.js?features=es6"></script>
IE浏览器GET请求缓存问题
IE 浏览器在发起 GET 请求,当参数一样时,浏览器会直接使用缓存数据,这样对于实时性有要求的数据不适用。
加上cache:false属性
$.ajaxSetup({cache:false})
前端代码混淆问题
- 可以直接使用在线工具混淆:https://javascriptobfuscator.com/Javascript-Obfuscator.aspx (只支持代码混淆,不会进行ES6=>ES5的转换)
- npm安装插件进行混淆,如uglify\Parcel,
注:要注意代码混淆的规则,避免某些全局变量或方法在混淆后名字更换造成引用不到的错误,一般像Global.Config这种格式的代码不会混淆,保留原样
npx的使用
npx 想要解决的主要问题,就是调用项目内部安装的模块,不再需要全局安装,例如在项目中通过
npm i parcel-bundler --save
添加Parcel
的依赖后,可以直接通过npx parcel build xxx.js
使用,而不再是下面的方式:
//方式一
npm i parcel-bundler -g //全局安装
parcel build xxx.js //如果不是全局安装会提示不是命令
//方式二,在package.json中添加脚本(脚本执行时会自动到node_modules/.bin下找命令)
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "parcel build index.js"
}
npm run build
//方式三
node-modules/.bin/parcel index.js
IE兼容new Date()问题
‘2016-12-05’是无法在IE浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是’2016/12/05’