Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 使网页包路径相对于当前目录 问题是:_Javascript_Ruby On Rails_Webpack_Webpack 2_Webpacker - Fatal编程技术网

Javascript 使网页包路径相对于当前目录 问题是:

Javascript 使网页包路径相对于当前目录 问题是:,javascript,ruby-on-rails,webpack,webpack-2,webpacker,Javascript,Ruby On Rails,Webpack,Webpack 2,Webpacker,我将Rails 5.0与Webpack一起使用,并尝试设置我们的初始Webpack配置。在Rails+Webpack中,Webpack为app/javascript/packs文件夹中的每个项目生成不同的构建文件。有没有办法让这些网页包“包”根据包含文件夹的文件解析模块的不同路径 问题是: “我的导入”语句中路径的冗余部分导致导入,如: main/pages/home.js: import Engine from 'main/engine' import Routes from 'main/en

我将Rails 5.0与Webpack一起使用,并尝试设置我们的初始Webpack配置。在Rails+Webpack中,Webpack为
app/javascript/packs
文件夹中的每个项目生成不同的构建文件。有没有办法让这些网页包“包”根据包含文件夹的文件解析模块的不同路径

问题是: “我的导入”语句中路径的冗余部分导致导入,如:

main/pages/home.js:

import Engine from 'main/engine'
import Routes from 'main/engine/routes.js' 
import Engine from 'dev_panel/engine'
import Routes from 'dev_panel/engine/routes.js' 
// but still refers to /main/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
// but still refers to /dev_panel/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
dev_panel/pages/home.js:

import Engine from 'main/engine'
import Routes from 'main/engine/routes.js' 
import Engine from 'dev_panel/engine'
import Routes from 'dev_panel/engine/routes.js' 
// but still refers to /main/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
// but still refers to /dev_panel/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
等等

当然,每一个文件和子目录都是如此。这不仅单调乏味,而且使文件和代码的重新组织成为一个令人头痛的问题

所需图案: main/pages/home.js:

import Engine from 'main/engine'
import Routes from 'main/engine/routes.js' 
import Engine from 'dev_panel/engine'
import Routes from 'dev_panel/engine/routes.js' 
// but still refers to /main/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
// but still refers to /dev_panel/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
dev_panel/pages/home.js:

import Engine from 'main/engine'
import Routes from 'main/engine/routes.js' 
import Engine from 'dev_panel/engine'
import Routes from 'dev_panel/engine/routes.js' 
// but still refers to /main/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
// but still refers to /dev_panel/engine/routes.js
import Engine from 'engine'
import Routes from 'engine/routes.js' 
等等

示例结构:
您可以使用
在目录结构中上升一级:

import Engine from '../engine'
import Routes from '../engine/routes.js'

您可以在顶部目录中创建一个文件
common exports.js
,用于重新导出您在许多文件中导入的内容。这样您就可以从该文件导入所有内容

common exports.js

export { default as Engine } from 'main/engine';
export { default as Routes } from 'main/engine/routes';
import { Engine, Routes } from 'common-exports';
main/pages/home.js

export { default as Engine } from 'main/engine';
export { default as Routes } from 'main/engine/routes';
import { Engine, Routes } from 'common-exports';