Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Heroku中部署带有Web包的rails应用程序时出错_Javascript_Ruby On Rails_Ruby_Webpack - Fatal编程技术网

Javascript 在Heroku中部署带有Web包的rails应用程序时出错

Javascript 在Heroku中部署带有Web包的rails应用程序时出错,javascript,ruby-on-rails,ruby,webpack,Javascript,Ruby On Rails,Ruby,Webpack,我真的不明白网页资产加载顺序 我创建了这样的JavaScript文件 // app/javascript/packs/foo.js import somelibrary; function someFunction() { // ... } <!-- app/views/layouts/application.html.erb --> <%= javascript_pack_tag 'foo' %> Webpack将尝试为app/javascript/pack

我真的不明白网页资产加载顺序

我创建了这样的JavaScript文件

// app/javascript/packs/foo.js
import somelibrary;
function someFunction() {
    // ...
}

<!-- app/views/layouts/application.html.erb -->
<%= javascript_pack_tag 'foo' %>

Webpack将尝试为app/javascript/packs中的每个javascript或类似文件创建一个包,即使用javascript\u pack\u标记可能需要的文件

因此,在此上下文中,app/javascript/packs/foo.js是单独编译的,必须解析import-somelibrary;而app/javascript/components/foo.js本身是作为app/javascript/packs/application.js的一部分编译的,它是必需的,并且以某种方式加载您的库


您可以尝试手动构建资产以查看webpack生成的所有包,并在部署之前检测编译错误,或者只需将所有组件和其他源文件放在app/javascript/packs之外的另一个文件夹中。

谢谢您的回答!那么为什么编译packs/foo.js会失败呢?我不清楚,您没有给出错误消息,但可能有很多原因,比如application.js中的其他代码可以访问您的库,所以在这种情况下导入是有效的,但如果您试图单独编译foo.js,则不会
// app/javascript/components/foo.js
import somelibrary;
function someFunction() {
    // ...
}
export { someFunction };

// app/javascript/packs/application.js
import { someFunction } from '../components/foo.js';
someFunction();

<!-- app/views/layouts/application.html.erb -->
<%= javascript_pack_tag 'application' %>