在Adobe Html5 Extension的使用Nodejs的问题

前情回顾

    之前为一个客户开发过一个基于Adobe Premiere的Html5扩展。原本是在Adobe Premiere Pro 2015下面进行调试开发的。一切进展的非常顺利,功能也都正常。但是2015版本内嵌的chrome浏览器内核有点老旧,很多页面样式在2015里面都不正常,所以这段时间从2015迁移到2017进行开发。哪知道迁移之后的第一步就报错了。插件中使用到了Nodejs来进行一些文件操作,初始化的第一步就报错:uncaught reference error: require is not define. 这就奇怪了,2015版中运行的好好的程序为啥到了2017就不行了呢?按照Adobe官方的文档,2015版支持了Nodejs的API,没道理2017不支持了啊。只可能支持度更完整才对啊。冥思苦想了半天,实在想不出是为啥。参考了下pond5和shutterstock的插件实现,他们都有用到Nodejs的模块,而且在2015及以上的版本中都能正常运行啊。难道都做了什么额外的我没有发现的操作?

    按照这个思路,把Pond5的插件页面翻了个底朝天,出了一个build.js有点联系之外,其他的代码没有任何和nodejs相干的。这下更加纳闷了,为啥它们可以正常运行?按照官方文档以及网络上对Nodejs功能的讨论,要启用Nodejs需要在manifest.xml中配置两个标签:

<CEFCommandLine>
  <Parameter>--enable-nodejs</Parameter>
  <Parameter>--mixed-context</Parameter>
</CEFCommandLine>

   毫无疑问,这个肯定是加了的。在开发之初我就配置好了这些东西的。没有道理去怀疑这个配置文件的正确性。无奈中又把Adobe官方发布的Sample工程下载来跑了下,Nodejs模块也都正常运行!这就奇了个葩了,肯定是工程配置哪里不对!

解决方案

   于是重点来检查manifest.xml文件。在反复的核对与修改之后,我发现我的manifest.xml文件与其他的工程都有点不同,我的文件结构关键部分如下:

<Resources>
	<MainPath>./index.html</MainPath>
	<ScriptPath>./jsx/MokaBridge.jsx</ScriptPath>
</Resources>
<CEFCommandLine>
	<Parameter>--allow-file-access</Parameter>
	<Parameter>--allow-file-access-from-files</Parameter>
	<Parameter>--enable-nodejs</Parameter>
	<Parameter>--mixed-context</Parameter>
	<Parameter>--disable-application-cache</Parameter>
</CEFCommandLine>

 而所有正常的工程,他们的配置如下:

<Resources>
	<MainPath>./index.html</MainPath>
	<ScriptPath>./jsx/MokaBridge.jsx</ScriptPath>
	<CEFCommandLine>
		<Parameter>--allow-file-access</Parameter>
		<Parameter>--allow-file-access-from-files</Parameter>
		<Parameter>--enable-nodejs</Parameter>
		<Parameter>--mixed-context</Parameter>
		<Parameter>--disable-application-cache</Parameter>
	</CEFCommandLine>
</Resources>

  就这么点区别。与是马上修改一验证,还真的是这个问题!!! 可是为啥在2015版本中能良好的运行啊?坑了个爹的,害我白白花了半天时间。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JackieZheng

十分钟带你了解服务化框架

在此之前 在此之前,你需要知道中间件的概念,可能在过往的从业生涯这个名词无数次的从你的眼前、耳畔都留下了足记,但是它的样子依然很模糊。 今天要说的服务化框架其...

20580
来自专栏IT技术精选文摘

Java文件映射(mmap)全接触

前言 我们在平时的工作中大多都会需要处理像下面这样基于Key-Value的数据: ? 其中UID是数据唯一标识,FIELD[1]是属性值。以QQ用户的Sess...

1.7K60
来自专栏应用案例

IT面试干货:PHP面试题汇总及答案

随着近两年来互联网潮流的发展,不少人选择php程序开发的学习。所以今天济南IT培训优就业的老师将与大家一起聊一聊PHP面试会问什么?、 ? PHP程序员经典面试...

41690
来自专栏Albert陈凯

终极 Shell-MacTalk-池建强的随想录Customize to your needs…

终极 Shell Posted on 2013 年 7 月 23 日 http://macshuo.com/?p=676 ? zsh 在开始今天的 Mac...

35580
来自专栏Albert陈凯

手把手教你用python抓取网页导入模块 urllib2随便查询一篇文章,比如On random graph。对每一个查询googlescholar都有一个url,这个url形成的规则是要自己分析的。

http://www.1point3acres.com/bbs/thread-83337-1-1.html **前言: ** 数据科学越来越火了,网页是数据...

34070
来自专栏IT技术精选文摘

如何设计一个 RPC 系统

23880
来自专栏用户画像

3.1.2覆盖和交换

早期的计算机系统中,主存容量小,虽然主存中仅存放一道用户程序,但是存储空间放不下用户进程的现象也经常发生,这一矛盾可以用覆盖基础来解决。 覆盖的基本思想是:...

9610
来自专栏java一日一条

我的编码习惯 - 参数校验和国际化规范

今天我们说说参数校验和国际化,这些代码没有什么技术含量,却大量充斥在业务代码上,很可能业务代码只有几行,参数校验代码却有十几行,非常影响代码阅读,所以很有必要把...

10710
来自专栏漫漫全栈路

Python爬虫学习之旅-从基础开始

知其然,知其所以然。使用爬虫,必须要先理解爬虫的原理,先说下爬虫的基本流程和基本策略。

337100
来自专栏JackieZheng

十分钟带你了解服务化框架

在此之前 在此之前,你需要知道中间件的概念,可能在过往的从业生涯这个名词无数次的从你的眼前、耳畔都留下了足记,但是它的样子依然很模糊。 今天要说的服务化框架其...

194100

扫码关注云+社区

领取腾讯云代金券