我正在尝试将protoc
生成的一些协议缓冲区代码用于javascript。我得到了一些可以导入(选择commonjs
样式之后)其他JavaScript文件的JavaScript文件。
我已经安装了一个名为google-protobuf
的npm依赖项,并且能够将所有JavaScript与webpack捆绑在一起。当我尝试在firefox中运行页面时,没有任何与此相关的错误,但是chrome给了我:
Invalid regular expression: /[Ö‘-Û¯Ûº-ࣿâ€�-��-�ï¬-ï·¿ï¹°-ﻼ]/: Range out of order in character class
我已经尝试向<meta>
和<script>
添加一些其他标签,但它们不起作用。我从未见过这样的错误,也不知道从哪里开始寻找。
最终目标是,我希望所有npm i
和所有import { Foo } from 'foo.js'
都能在网页上正常运行。
使用HTMLWebpackPlugin
注入的Webpack是:
<script type="text/javascript" src="frontseat.bundle.js"></script>
最初没有<meta>
标签,我只是在头下添加了一个,所以看起来:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>...
尝试在下面将您的正则表达式更新为该正则表达式:
[Ö‘\-Û¯Ûº-ࣿâ€�-��-�ï¬-ï·¿ï¹°-ﻼ]
您的元标记是这样的吗?<meta charset="utf-8">
with this charset
我遇到了与您相同的问题。我无法将google-protobuf升级到3.6.1
以上。以前只有3.6.1版适用于我。所有更高版本的3.6.1在我的项目中都引发相同的错误。
但是,<meta charset="utf-8">
现在对我有帮助。我创建了一个最小样本,希望它能给您一些想法。
google-protobuf版本:3.11.2
index.js
import * as pb from 'google-protobuf';
console.log(pb);
build command
npx webpack index.js -o bundle.js
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="bundle.js"></script>
</head>
</html>
然后,您应该能够在chrome devtools控制台上看到类似的内容,而不会出现错误。
{Map: ƒ, Message: ƒ, BinaryReader: ƒ, BinaryWriter: ƒ, ExtensionFieldInfo: ƒ, …}