我的项目结构如下:
- workspace
- customPackage
- customIndex.js
- myProject
- index.js
- myProject2
- index.js
在开发中,我想从我的本地工作区导入包,如下所示:
//index.js
import something from '../customePackage/customIndex.js'
在生产中,我需要从npm模块中进行导入,如下所示:
//index.js
import something from 'customPackage';
目的是能够使用包中的本地更改(不经过提交周期)。最后,在测试之后,可以通过npm包推送和正常使用包。
如何以高效的方式执行此操作,而无需每次都进行代码更改?
答案 0 :(得分:1)
您可以将Resolve#alias与Webpack一起使用:
resolve: {
alias: {
"customPackage": process.env.NODE_ENV === "production" ?
"customPackage" :
path.resolve(__dirname, "../customePackage/customIndex.js")
}
}
然后在你的来源中,你只需要这样做:
import something from 'customPackage';
它将指向正确的包装。显然,您需要设置NODE_ENV
环境变量,或根据您的构建环境进行更改。
答案 1 :(得分:0)
如果您已经在使用webpack,则可以创建两个不同的入口点:
entry: {
bundle: './Scripts/index.tsx',
bundle2: './Scripts/index2.tsx'
},
output: {
publicPath: "/js/",
path: path.join(__dirname, '/wwwroot/js/'),
filename: '[name].js'
},
然后在index
导入主模块并在index2
导入测试模块。因此,您将拥有不同的捆绑文件bundle.js
和bundle2.js
。