首先,对于那种通过html页面就能运行的前端项目,在Linux服务器上也是如此运行,只不过是需要部署在nginx的html目录下。而对于这种运用了新语法无法直接通过html页面运行的项目,此时在Linux服务器上这个方法肯定也行不通。
在上篇博客里讲到,windows开发环境下,我们可以通过vscode的插件来辅助运行项目,但是这个方案也肯定不能在Linux上实施,那么这个问题应该如何解决呢?
此时主角babeljs登场了。
右边我给出一个学习文档链接,大家可以自行阅读学习。babeljs教程
这里我只简单的描述一下babeljs是干啥的,babeljs的功能用一句话来概述:bablejs是一个js的转译器,它能够把高级的js语法转换成es5,也就是浏览器都能识别的语法规则。
知道了babeljs的作用,这不是正是我们所需要的吗。
我以上篇的calculator为示例运用babeljs进行语法转译。
打开教程,很快我们就能找到所需要的章节。
点击进入指定教程。
教程部分很详细,按照教程的步骤进行即可。这里我以此教程在我的案例中实施所遇到的问题进行讲解,因为我猜我遇到的问题,你们也很有可能会遇到,所以我就在这里指出明细。
第一步:打开vscode安装教程所给出的依赖配置
在进行第一步安装时可能遇到一个问题:安装太慢甚至停止不动
解决方案:在开始安装前使用下面那行代码转入淘宝镜像
npm config set -g registry https://registry.npm.taobao.org
解决了这个问题后,很快需要准备的依赖已经安装完成。
对比教程里的图片,我们会发现我们还少安装了一个依赖–webpack-cli。
通过下面这行代码将其补完整:
npm install --save-dev webpack-cli
第二步:创建webpack.config.js文件
这个文件直接在项目根目录下创建,填入教程里的代码即可。
第三步:生成最终文件夹
执行如下代码:
npm run pack
然后直接报错
细看这个错误,我们发现原来在package.json这个文件中的scripts里面还少了东西
分别是pack和publish,参看教程补充完整,然后再次运行上述代码。
报错Cannot find module ‘@babel/core’
解决方案:运行下面代码
npm install @babel/core --save
解决了这个问题再次运行开始的那个代码。
结果发现还是报错了,这个问题其实是babel-loader的版本导致的,教程的版本是7,而我使用的版本是8,所以换成教程里的版本。
注意:这里更换后需要删掉package-lock.json这个配置文件然后命令行输入下面代码重新生成package-lock.json文件。
npm install
上述都处理好之后再次运行开始的那段代码,这次,终于成功了!
最后一步:publish
一鼓作气,输入下面最后一行代码:
npm run publish
然后在HTML页面绑定最终生成的那个js文件,然后改掉src中type的类型。
注意:如果不改掉type的类型直接运行的话,浏览器会显示如下的错误。
到此,我们就成功的将一个es6的项目变成es5类型的项目,对于部署服务器端更加方便的是此时所以的js文件都汇聚到此一个文件里,通俗点说就是js文件只需要这一个文件即可。