宝哥软件园

Nuxt.js踩坑总结分享

编辑:宝哥软件园 来源:互联网 时间:2021-09-01

构建问题

1.如何在头部介绍js文件?

背景:在head标签中,flexible.js文件是以内联的形式引入的。本项目主要针对移动终端,引入了flexible.js来实现移动终端的适配。Nuxt.js通过vue-meta实现头标签管理,可以通过查看文档进行如下配置:

//nuxt . config . jshead : { script 3360[{ innerhtml 3360 ' console . log(' hello ')',type:' text/JavaScript ',charset:' utf-8'}]结果,生成html:

复制代码如下: scriptdata-n-head=' true ' type=' text/JavaScript ' charset=' utf-8 ' console . log(' hello ')/script

我们发现vue-meta转义了引号,加上_ _ dangerouslydisableanizers 3360[' script ']后,这些字符不会被转义,所以这个字段要谨慎使用!

接下来,将console.log('hello ')的内容替换为flexible.js配置升级后:

head : { script : [{ innerhtml 3360 require('。/assets/js/flexible '),type:' text/JavaScript ',charset:' utf-8'}],_ _ dangerouslydisableanizizer 3360[' script.

2.如何使用预处理器

背景:在组件中的模板、脚本或样式上使用各种预处理程序,控制台会在添加处理器后报告错误。

Style lang=' sass '。redcolor:red/style这个问题的解决方法很简单,只需安装这些依赖项即可。

NPM安装-保存-devnode-sasses-loader,但解决方案不是很顺利。阅读中文文档时,忽略版本号,按照以上提示操作,发现不成功。后来,各种调试终于找到了解决办法。事后我发现中文文档的版本号太低了。如果需要查看文档,一定要看最新版本的英文文档!

3.如何使用px2rem

背景:在css中,px是写的,px由px2rem加载器转换成rem

在之前的项目中,是通过px2rem loader实现的,但是在Nuxt.js的项目下,因为涉及到vue-loader,所以添加css loader非常费力。

我想到了另一个解决方案,可以用postcss处理。您可以在nuxt.config.js文件或postss . conf . js文件中添加配置。

build : { PostCSS :[require(' PostCSS-PXREM ')({ Reminit 3360 75//转换基本单位}) ]},4。如何扩展webpack配置

背景:向utils目录添加别名

正如我刚才所说,Nuxt.js内置了webpack配置。如果要扩展配置,可以将其添加到nuxt.config.js文件中。同时,配置信息可以在这个文件中打印出来。

展开(config,CTX){ console . log(' web pack config : ',config)if(CTX . is client){//添加别名配置对象. assign (config.resolve.alias,{'utils' :path。解析(_ dirname,' utils')}}} 5。如何添加vue插件

背景:我封装了一个吐司vue插件。因为vue的实例化过程没有暴露,不知道什么时候注入。

您可以在nuxt.config.js中添加插件配置,以便在Nuxt.js应用程序初始化之前加载和导入插件。

module . exports={ plugins :[' ~ plugins/toast ']} ~ plugins/toast . js文件:

从“vue”导入vue“从”导入toast./utils/toast“导入”./assets/CSS/toast . CSS ' vue . use(toast)6 .如何修改环境变量NODE_ENV

背景:在项目中,设置三个NODE_ENV值对应不同的版本。发展,地方发展;发布,预发布版本;制作,网络版。其中,预发布版本比生产版本有更多的vconsole。

//package . JSON ' scripts ' : { ' build dev ' : ' cross-ENV NODE _ ENV=release nuxt build背包build ',Start dev ' : ' cross-ENV NODE _ ENV=release port=3000 NODE build/main . js ' },print process.env.NODE_ENV仍在,生产中。

在背包的源代码中,找到了答案。当背包构建命令被执行时,process.env.NODE_ENV将被修改为production,这将被写死,无法配置.

无奈之下,只能在process.env下添加__ENV属性,代表NODE_ENV

此时,页面上会打印process.env.__ENV undefined的信息,但可以打印process.env.NODE_ENV。

您可以通过在nuxt.config.js中配置env属性来解决这个问题.

Env: {_ _ env:process。环境。_ _ env}发展问题

1.窗口或文档对象未定义?

背景:当引入第三方插件或者直接在代码中写入窗口时,控制台会给出窗口未定义的警告。出现此问题时,节点服务器没有窗口或文档对象。解决方法是通过process.browser区分环境.

如果(process.browser) {//引入第三方插件require('***') //在window对象window.mbk={}}下修改某个属性最后,

本文在项目中遇到了各种各样的问题,论文中有任何不清楚或不恰当的陈述。欢迎批评指正。希望对大家的学习有帮助,希望大家多多支持我们。

更多资讯
游戏推荐
更多+