附件是我尝试将项目捆绑生产时收到的图片。我收到了Unexpected token name <<Object>>, expected punc <<,>>
消息,如图所示。
不确定问题是什么,但我尝试使用uglify-es和uglify-js并获得相同的错误。我甚至尝试使用es6 +代码创建一个简单的应用程序,以查看uglify-js是否有效。因此,互联网上的一些旧线程提到uglify-js不会处理es6 +代码现在可能无关紧要。我也读到某个地方,最新版本(3.x)确实支持它,但还没有能够确认。
我很想展示一些代码,但不确定我需要展示哪些相关代码。根据图像,它还提到了line,col,pos等......但是该行上的代码并不是从提到的col号开始的。
我会在调查时更新这篇文章,但任何提示或想法都会很棒!
答案 0 :(得分:2)
所以经过一番深入研究后,问题就解决了。看起来我在非优化的包await _saga.Match(s => null != s.RemainingSteps);
中看到的1665行并不是我需要看的(显然因为列索引已经关闭)。
因此,我决定输出FuseBox正在处理的捆绑生成代码,事实上它实际上是不同的。这是我在app.js
node_modules/fuse-box/quantum/plugin/BundleWriter.js
内添加的行,用于输出内容,以便我可以清楚地阅读。
uglifyBundle function
bundle.txt中的输出是问题,我的实际TypeScript代码如下所示:
fs.writeFile('bundle.txt', bundle.generatedCode);
所以我查看了我的// bundle.txt line 1665
this.wholesalerSettings = [object Object]
// actual project code
constructor() {
this.wholesalerSettings = process.env.WHOLESALERSETTINGS;
this.API = this.setHostUrl();
}
文件,发现我没有正确解析json对象。
fuse.ts
一旦我用public get wholesalerSettings()
{
const wholesaler = require(`./src/~/wholesalers/${this.wholesaler}/config.json`);
return JSON.stringify(wholesaler);
}
// then down in the environment plugin
EnvPlugin({
WHOLESALERSETTINGS: this.wholesalerSettings,
IMAGE_PATH: this.imagePath
}),
正确解析了对象,它就完美地工作了,因为JSON.stringify
现在是一个JSON字符串而不是一个Object。
我第一次真正处理devops的东西,但很有趣,同时又非常紧张。我想我学到的主要内容是当你处理工具和第三方工具时(FuseBox使用uglify-js)然后你需要仔细查看给予该工具的输入,而不是像我那样输出起初。
答案 1 :(得分:0)
UglifyJS表示它看到Object
期待,
,所以我们可以推断:
Object
,因此错误发生在某些地方,例如多变量声明,,
或对象/数组定义,let foo, bar
{{1} }