ParseError: ‘import’ and ‘export’ may appear only with ‘sourceType: module

首先这个错误是Browserify报出来的,看着网上一篇篇给babel加preset的解决方案让我一度以为这是babel出问题了。

但我按照那些方案依然不能解决这个问题,比如加stage-0,还有加es2015的preset之类的,另外现在这些preset已经被弃用了,官方推荐用preset-env来代替。而我手动加了commonjs的plugin也一样报错。

一番研究之后发现我其他所有es模块被引用都能正常打包,唯独node_module里面的一个模块的es6模块不能加载,看来Browserify是默认不允许node_module里的模块以es6格式输出模块的。所以解决方案是要么把文件从node_module里移出来,要么想办法让Browserify允许node_module以es6输出模块,我最后用的是前者,因为那个sourceType:module我怎么设置也依然没有效果。

PHP输出内容到控制台

有时候本地开发的时候会使用 php -S 命令启动一个服务器来调试,由于该web服务器模式直接echo会把内容输出到页面上,所以需要想办法把内容输出到控制台界面。

php里有几个 php:// 开头的特殊读写流可以使用,文档见此:https://www.php.net/manual/en/wrappers.php.php

虽然该页面上说有常量 STDINSTDOUT 和 STDERR ,但是不知道为啥使用它们会报错不存在常量,所以我们可以自己定义:

然后就可以定义自己的输出函数来输出到控制台了