2016-08-29 2 views
0

Учитывая эту папку структураМожет WebPack псевдоним одного файла в зависимости от переменной окружения

/products 
-foo 
-foo.js 
-bar 
-bar.js 

Я хотел бы быть в состоянии import или require либо foo.js или bar.js в зависимости от переменной окружения называется BUILD_PRODUCT. я хочу импортировать в import Product from "product"

Webpack должен решить product[.js] с помощью объекта BUILD_PRODUCT к /products/$BUILD_PRODUCT/$BUILD_PRODUCT.js

Так что если export BUILD_PRODUCT=foo он должен решить

import Product from "product" в import Product from "/products/foo/foo.js"

Возможно ли это?

Я уже определил modulesDirectories как:

const PRODUCT_DIR = path.join(__dirname, "products", process.env.BUILD_PRODUCT) 
const PRODUCT_SRC_DIR = path.join(PRODUCT_DIR, "src") 

modulesDirectories: [ 
    PRODUCT_DIR, 
    PRODUCT_SRC_DIR, 
    SRC_DIR, 
    "node_modules", 
], 

ответ

0

Да, это возможно. Это ответ на этот вопрос repo.

Вы можете проверить среду с этим предложениями:

var ENV = process.env.npm_lifecycle_event; 
var isTest = ENV === 'test' || ENV === 'test-watch'; 
var isProd = ENV === 'build'; 

Он принимает ENV из скриптов НПХ, плохо это объяснить. Если я запускаю этот скрипт:

"build" 

isProd будет верно, и если вы запустите команду следующее:

"test" 

isTest будет верно и, наконец, если ваш развиваются, вы внутренне нужно запустить этот команда

"server" 

так isTest и isProd будет ложным оба.

Это один из способов окружающей среды. Надеюсь, это вам поможет.

+0

Спасибо, но это не отвечает на мой вопрос. – philk

Смежные вопросы