我想我在这里遗漏了一些东西.我有一个这样的目录:
myapp
|-lib
|-package1
|-dostuff.rb
|-package2
|-dostuff.rb
从一个irb控制台我想测试库之前,我把它添加到我的实际项目(一个Rails应用程序).但是,输入以下内容:
require 'lib/package1/dostuff'
Run Code Online (Sandbox Code Playgroud)
返回错误,说它无法找到要加载的文件.我将lib目录添加到加载路径但我无法加载该文件.
我忘记了什么?这两个文件名不必相同,但它们是如何开始的(它们是从我需要使用soap4r调用的一些Web服务自动生成的;每个包代表一个不同的Web服务API组)
当我尝试使用Ruby-command尝试访问gem时运行我的.rb文件时,我遇到了问题.我试图使用的宝石是Ruby-Whois.我有一个示例脚本,当我尝试通过"ruby whois.rb"执行它时,我收到此错误消息:
./whois.rb:6:未初始化的常量Whois(NameError)
但是,如果我在IRB中逐行运行相同的脚本,我会得到预期的结果.可能是什么原因导致的
以下是whois.rb
require "rubygems"
require "whois"
domain = "google.com"
c = Whois::Client.new
a = c.query(domain)
puts a
Run Code Online (Sandbox Code Playgroud) 我是红宝石的新手,但我正在研究我的第一个红宝石计划.它目前有两个文件,一个是函数库(xgync.rb存储在其中lib),另一个是xgync存储在'bin'中的可执行文件.(项目在这里可见https://bitbucket.org/jeffreycwitt/xgync/src)我还为我创建了一个符号链接,/usr/local/bin/xgync以便我可以{arguments}从终端的任何地方编写命令xgync .
问题似乎bin/xgync取决于图书馆lib/xgync.rb.我把这个依赖写成bin/xgync如下:
$:.unshift(File.dirname(__FILE__) + '/../lib')
require "xgync"
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到以下错误:
/Users/JCWitt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- xgync (LoadError)
from /Users/JCWitt/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/bin/xgync:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)
你能看到我写的东西有什么问题吗?符号链接可能会以某种方式搞砸了吗?
谢谢你的帮助 :)
我正在使用基本的 Laravel 5 文件结构。
我基本上在 app 目录中有一些 .php 文件。我试图从 app/Http/Controllers 目录中的控制器调用它们。
require ('../../PlaylistRetrieval.php');
require ('../../Playlist.php');
Run Code Online (Sandbox Code Playgroud)
这是我的控制器中出现故障的两条线。我的 IDE PhpStorm 显示它可以识别目录。但是它抛出了一个 FatalErrorException。
这是文件结构的照片。如果您不熟悉 Laravel 5。上面的 require 函数是从内调用的PlaylistController.php。

我对 PHP 和 Laravel 世界还是很陌生,所以如果这很简单,我深表歉意。
在我的控制器功能中,我使用一个require语句来包含一个文件:
require app_path().'/plivo/plivo.php';
Run Code Online (Sandbox Code Playgroud)
在此语句之后,我尝试使用以下语句从此控制器重定向:
return Redirect::back()->with('success', 'Note added successfully');
Run Code Online (Sandbox Code Playgroud)
但是,这给了我以下错误:
调用未定义的方法
Redirect::back()
如何从此功能重定向?
这是我的完整代码:
public function sendSMS(){
require app_path().'/plivo/plivo.php';
$auth_id = "XXXXXXXXXXXX";
$auth_token = "XXXXXXXXXXXXXXXXXXXXX";
$p = new \RestAPI($auth_id, $auth_token);
$params = array(
'src' => '1XX7XX0',
'dst' => '91XXXXXXXXX7',
'text' => 'Test SMS',
'method' => 'POST'
);
$response = $p->send_message($params);
return Redirect::back()->with('success', 'Note added successfully');
}
Run Code Online (Sandbox Code Playgroud) 以后可以var x = require('x.js')使用x来访问所有好东西。构建一系列所需内容的最接近的方法是什么,例如:
var xs = [require('a.js'), require('b.js')]
Run Code Online (Sandbox Code Playgroud)
然后访问导出的功能为xs[0].feature和xs[1].feature?
我正在编写自己的自定义 node.js 服务器。它现在处理静态页面、AJAX GET、POST 和 OPTIONS 请求(后者用于 CORS),但我知道我为运行服务器端 GET 和 POST 脚本选择的方法不是最佳的 - 官方 node.js文档指出,启动大量子 node.js 进程是一个坏主意,因为它是一种资源匮乏的方法。它有效,但我知道可能有更好的方法来实现相同的结果。
所以,我来到了 VM 模块。我的第一个想法是这将解决机器与子进程混乱的问题,并使我的服务器更具可扩展性。
有一个小问题。我的服务器端脚本,对于诸如目录列表和将结果发送回浏览器之类的任务,从几个require语句开始以加载所需的模块。
最终编写了读取脚本文件的代码并将其传递给 vm.Script() 后,我现在遇到了一个错误:
“参考错误:要求不是一个函数”
我后来了解到,这样做的原因是 VM 为脚本启动了一个裸 V8 执行环境,而不是一个独立的 node.js 执行环境。为了让我的想法奏效,我需要 VM 为我提供一个单独的沙盒 node.js 执行环境。我如何实现这一目标?
我的初步研究告诉我,我需要提供虚拟执行环境与node.js的全局自身的单独副本,以便需要发挥预期的作用。我刚才提供的理解是否正确?如果是这样,我需要采取哪些步骤来执行此任务?
require对于<script>HTML文件中的标签执行的脚本,在Electron中如何工作?例如,我有:
-index.html
-langs/js.js
-langs/test.js
Run Code Online (Sandbox Code Playgroud)
我<script src="langs/js.js"></script>在index.html中,但是我想从langs / js.js中要求langs / test.js,但这不起作用:
require("./test");
它必须是require("./langs/test");即使从JS测试的相对路径就是“./test”。有没有一种方法可以使它工作而无需在每个文件中指定HTML文件的完整路径require?
几天以来我一直有这个问题,我真的在互联网上找不到任何解决方案。
我是 Vue.js 的新手
我正在做一个 TDD laravel 项目:
现在我想像这样将标准的 vue 示例组件添加到我的 app.blade.php 中:
应用程序.blade.php
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<body>
<div id="app">
<example-component></example-component>
</div>
Run Code Online (Sandbox Code Playgroud)
应用程序.js
require('./bootstrap');
window.Vue = require('vue');
Vue.component('example-component', require('./components/ExampleComponent.vue').default);
const app = new Vue({
el: '#app',
});
Run Code Online (Sandbox Code Playgroud)
结果,示例组件在网页上呈现......没问题......
但问题来了:
一旦我更改了示例组件中的任何 HTML 代码,它就不会在浏览器中显示更改。它不断显示标准示例组件。
甚至更糟:
当我通过重构为 FlashTest.vue(例如或其他任何东西)并像这样更改 app.layout.blade 和 app.js 来重命名 examplecomponent.vue 文件时:
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<body>
<div id="app">
<flash-test></flash-test>
</div>
Run Code Online (Sandbox Code Playgroud)
应用程序.js
require('./bootstrap');
window.Vue = require('vue');
Vue.component('flash-test', require('./components/FlashTest.vue').default);
const app = new …Run Code Online (Sandbox Code Playgroud) 这两个需要方法之间的区别是什么:
1. var xx = require('module')
2. const {xx} = require('module')
Run Code Online (Sandbox Code Playgroud)
我看到第一个 onde 我可以访问 xx 作为变量,所有脚本都由模块导出。第二个 xx 未定义。如何访问第二个“方法”或者它是一种方法来构造模块来使用 {}
谢谢
我在使用最新版本的 Electron 时遇到此错误。我在主 javascript 文件中将 nodeIntegration 设置为 true 。我已从工作的 Electron 应用程序复制并粘贴了此代码,但它似乎不适用于我的新应用程序。
电子版本:^12.0.0
我的主要JS
//Require Electron
const { BrowserWindow, app, autoUpdater, globalShortcut, ipcMain } = require('electron');
const main = require('electron-reload');
//Electron reload
const electron_reload = require('electron-reload')(__dirname);
//Disable security warnings
process.env['ELECTRON_DISABLE_SECURITY_WARNINGS'] = 'true';
//Main window
function createMain() {
const main = new BrowserWindow({
minWidth: 425,
minHeight: 524,
width: 1600,
height: 900,
frame: null,
icon: './assets/icon.png',
webPreferences: {
nodeIntegration: true,
nodeIntegrationInWorker: true,
nodeIntegrationInSubFrames: true,
enableRemoteModule: true,
}
});
main.loadFile('./HTML/index.html');
main.setMenu(null);
main.webContents.toggleDevTools();
main.webContents.on('did-finish-load', function …Run Code Online (Sandbox Code Playgroud) 我想理解为什么对 Traits 的讨论似乎从来不包括与 Require 的比较,而是总是与继承进行比较。
据我了解,Require 本质上与运行时的复制/粘贴相同,并且 Require_Once 确保代码不重复。特征通常也被称为与复制/粘贴几乎相同。
也就是说,Require 和 Include 可以在条件逻辑中使用,因此在某些情况下它们可以成为 Trait 的更好替代方案。Traits 具有多态性和其他理想的功能,而这些功能是严格复制代码所无法获得的。例如,能够抽象特征中的函数,然后选择性地在容器类中重写。
这两个“代码包含/导入”功能在范围方面具有相似的行为,例如 $this。
但一个明显的区别是 Include/Require 代码默认会进入 HTML 处理,并且 <?php 是可选的,具体取决于上下文,通过 Trait 我们知道代码必须是 PHP 并且必须以 <?php 为前缀。
所以对我来说,Trait 更像是一个更高级别的 OOP 工具,而 Require 是一个不了解 OOP 细节的语言级指令。然而,在许多情况下,使用 Require 代码似乎比使用 Trait 来包含相同的代码同样简单和有用。
我希望有人能够提供清晰的示例,其中将选择一个而不是另一个,以便更明显地应该使用哪一个。除了我所引用的内容之外,还有更多细节。我是否已经走在做出这些选择的正确道路上?比这更简单,还是更复杂?比较表将是理想的。
我有一个文件,其中包含一些辅助函数,可用于其他两个文件.我想导入函数,但我习惯这样做的方式并不理想:
helper = require('./helpers')
helper.log()
helper.ok()
...
Run Code Online (Sandbox Code Playgroud)
我希望能够使用没有helper前缀的函数(例如ok()).我怎样才能做到这一点?
编辑:目前有7个辅助函数,并且这个数字可能会在将来增长,因此手动指定每个函数似乎无法使用单独的文件.