鉴于此文件夹结构
/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 :(得分:0)
是的,这是可能的。这回答了这个repo。
您可以使用以下句子检查环境:
var ENV = process.env.npm_lifecycle_event;
var isTest = ENV === 'test' || ENV === 'test-watch';
var isProd = ENV === 'build';
从npm脚本中取出ENV,不好解释一下。如果我运行这个脚本:
"build"
isProd将为true,如果运行以下命令:
"test"
isTest将是真的,最后如果你正在开发,你需要运行这个命令
"server"
所以isTest和isProd都是假的。
这是环境的一种方式。希望这会对你有所帮助。