鍍金池/ 問(wèn)答/HTML5  HTML/ node.js中的requier如何使用變量作為參數(shù)

node.js中的requier如何使用變量作為參數(shù)

在使用create-react-app創(chuàng)建react應(yīng)用的時(shí)候,需要用到requier一個(gè)路徑的文件來(lái)進(jìn)行處理。然后我想把這個(gè)路徑作為一個(gè)變量來(lái)交給requier使用,但是缺總是出現(xiàn)報(bào)錯(cuò)

目錄結(jié)構(gòu)
圖片描述

代碼

// import { Component } from 'react';
// const path = require('path');


// 獲取畫廊數(shù)據(jù)
const imgData = require('../data/gallery_data.json');
// 圖片所在文件夾
const imgDirectory ='../img/gallery_img/';
// 獲取圖片的Url
export const galleryImgs = (function getImgUrl(imgDataArr) {
  for (let i = 0, j = imgDataArr.length; i < j; i++) {
    var imgUrl = imgDataArr[i];
    // imgUrl.imgUrl = require(''+imgDirectory + imgDataArr[i].fileName);//可以
    imgUrl.imgUrl = require('../img/gallery_img/'+imgDataArr[i].fileName);//可以
    
    imgDataArr[i] = imgUrl;
  }
  return imgDataArr;
}(imgData)) 

如果我把js文件放到上一層中

const imgDirectory ='./img/gallery_img/';

然后使用
 imgUrl.imgUrl = require(''+imgDirectory + imgDataArr[i].fileName);//可以

在前面加一個(gè)''進(jìn)行類型轉(zhuǎn)化就可以,但是如果是要查詢上層目錄就不行
瀏覽器報(bào)錯(cuò)為
圖片描述

如果我不使用''+
那么就會(huì)報(bào)錯(cuò)
Error: Cannot find module "."

求解

回答
編輯回答
愛(ài)是癌

不知道你是不是想說(shuō),當(dāng)前路徑的文件a.js,在使用其他路徑的b.js,路徑就不以a.js為準(zhǔn),如果是可以看看 require的方法具體是什么,其中有個(gè)__dirname參數(shù)代表當(dāng)前文件夾路徑。

2017年7月11日 16:22
編輯回答
老梗

去看看
require.context

2018年2月3日 18:57