Javascript 使网页包路径相对于当前目录 问题是:
我将Rails 5.0与Webpack一起使用,并尝试设置我们的初始Webpack配置。在Rails+Webpack中,Webpack为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
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';