【问题标题】:Browserify on PhantomJS script with `require('webpage')`Browserify 在 PhantomJS 脚本上使用 `require('webpage')`
【发布时间】:2015-04-19 15:08:48
【问题描述】:

如何在需要 PhantomJS webpage 模块的 JavaScript 模块上运行 browserify?

由于webpage 模块是由 PhantomJS 提供的,browserify 找不到它,我得到了Error: module "webpage" not found--ignore--exclude 选项都会产生错误。 --ignore-missing 选项完全消除了导入。

browserify 是否有办法表明 require 的某些用途不应包含在捆绑包依赖项中?

背景

我正在尝试在 ES6 中编写 PhantomJS 脚本。我可以将单个脚本转换为在 PhantomJS 中运行的 ES5 代码,并且我正在尝试使用 Browserify 来转换整个依赖关系树。不幸的是,它不应该引入一些依赖项——那些由 PhantomJS 提供的——并且编译中断,因为它可以找到这些模块。

也许我应该使用与 Browserify 不同的工具?

【问题讨论】:

  • PhantomJS 有一个不同于 node.js 的执行环境,所以你不能在 PhantomJS 脚本上使用 browserify。 PhantomJS 是一个不能被浏览器化的完整浏览器。你想达到什么目标?
  • 我有一个脚本,我想用 PhantomJS 运行,但我想把它分解成模块,然后用 Browserify 把它重新组合成一个脚本。不幸的是,我无法告诉 Browserify 它应该尝试读取哪些导入,哪些由 PhantomJS 提供。
  • 我的意思是你想在宏伟的计划中实现什么。您想直接在客户端浏览器中运行 PhantomJS 脚本吗? => 不可能。
  • 我想在 PhantomJS 中运行一个 PhantomJS 脚本。
  • 我很困惑。为什么在这种情况下需要 browserify?你能提供一个最小的代码示例吗?

标签: javascript phantomjs browserify


【解决方案1】:
// browserify will resolve someNodeModule and include it in the bundle
var mymodule = require('someNodeModule');

var _require = require;
// browserify will ignore this, so 'webpage' is resolved at runtime inside phantomjs
var webpage = _require('webpage');

【讨论】:

  • 你能修改你的答案来解释你的代码是如何解决问题的吗?
猜你喜欢
  • 1970-01-01
  • 2015-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-05-21
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多