Jea*_*sse 17 requirejs phantomjs
在PhantomJS脚本中,我想加载一个自定义模块,但似乎相对路径在PhantomJS中不起作用?
的script.js:
var foo = require('./script/lib/foo.js');
foo.bar('hello world');
phantom.exit();
Run Code Online (Sandbox Code Playgroud)
foo.js:
exports.bar = function(text){
console.log(text);
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
编辑:
inject()并不重要,因为我不需要向HTML页面注入JS,而是加载我自己的模块,如require('fs')但具有相对路径.
Vic*_*yew 13
经过大量时间寻找同样的事情,这是我理解的,虽然我可能是错的:
require,而是它自己的require,所以事情是不同的require,它总是被解释为相对于当前工作目录__dirname,因此没有直接的方法来获取脚本的目录我发现的解决方案最不烦人:
如果使用phantomjs纯,没有casperjs:
require(phantom.libraryPath + '/script/lib/foo.js')
Run Code Online (Sandbox Code Playgroud)如果使用casperjs:
var scriptName = fs.absolute( require("system").args[3] );
var scriptDirectory = scriptName.substring(0, scriptName.lastIndexOf('/'));
require(scriptDirectory + '/script/lib/foo.js')
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
10255 次 |
| 最近记录: |