基于节点变量的反应导入
React import based on node variable
我正在尝试解决这个问题,但还没有发现任何有用的东西。
想法是在某些组件或文件中我需要根据节点变量导入特定文件。
一些示例脚本 运行 包括:
USER=test yarn run build //or
USER=test yarn run serve
现在,根据 USER
变量,我需要进行导入,例如
import `~/users/${process.env.USER}/config.json`;
这显然不起作用,我对如何让它起作用感到困惑。当然有一种方法可以基于节点变量导入,然后基于该变量从不同的文件夹和文件导入。任何帮助或链接将不胜感激!
因此,需要基于节点变量的解决方法是使用 FuseBox Sparky task runner 和文件 Api 到 edit/replace 文件夹中的 App.tsx 并包括适当的样式表。
仍然需要编写一个任务来在构建或开发服务器关闭后撤消编辑。
暂时保留问题,希望给出更清晰的解决方案,否则我将 post 更多信息并在完成此任务后关闭它 :)
编辑(更多信息)
因此创造了两个闪亮的工作
- inject-css 使用 Sparkys 文件 api 将
//css
替换为相关的导入语句
- remove-css 任务,完成后用
//css
替换导入语句。
所以第一个是下面的:
Sparky.task('inject-css', async (context: SparkyContext) =>
{
await Sparky
.src('./src/~/App.tsx')
.file('*', (file: SparkyFile) =>
{
file.read();
file.setContent(
`${file.contents}`.replace(
'//css',
`import '~/user${context.user}/styles/site.scss';`
)
);
file.save();
})
.exec();
});
第二个作业是相同的,但替换参数几乎相反,它在进程退出时调用。这部分仍然存在一些问题,但想法是一旦通过调用 process.exit()
或 ctrl+c(在 Mac 上)关闭进程,然后我们删除 css 导入语句。
// ctrl + c event
process.on('SIGINT', () => {
Sparky.exec('remove-css');
});
// process.exit called
process.on('exit', () => {
Sparky.exec('remove-css');
});
// uncaught exception
process.on('uncaughtException', () => {
Sparky.exec('remove-css');
});
当我弄清楚为什么我的构建与 remove-css 任务有问题时会更新。
我正在尝试解决这个问题,但还没有发现任何有用的东西。
想法是在某些组件或文件中我需要根据节点变量导入特定文件。
一些示例脚本 运行 包括:
USER=test yarn run build //or
USER=test yarn run serve
现在,根据 USER
变量,我需要进行导入,例如
import `~/users/${process.env.USER}/config.json`;
这显然不起作用,我对如何让它起作用感到困惑。当然有一种方法可以基于节点变量导入,然后基于该变量从不同的文件夹和文件导入。任何帮助或链接将不胜感激!
因此,需要基于节点变量的解决方法是使用 FuseBox Sparky task runner 和文件 Api 到 edit/replace 文件夹中的 App.tsx 并包括适当的样式表。
仍然需要编写一个任务来在构建或开发服务器关闭后撤消编辑。
暂时保留问题,希望给出更清晰的解决方案,否则我将 post 更多信息并在完成此任务后关闭它 :)
编辑(更多信息)
因此创造了两个闪亮的工作
- inject-css 使用 Sparkys 文件 api 将
//css
替换为相关的导入语句 - remove-css 任务,完成后用
//css
替换导入语句。
所以第一个是下面的:
Sparky.task('inject-css', async (context: SparkyContext) =>
{
await Sparky
.src('./src/~/App.tsx')
.file('*', (file: SparkyFile) =>
{
file.read();
file.setContent(
`${file.contents}`.replace(
'//css',
`import '~/user${context.user}/styles/site.scss';`
)
);
file.save();
})
.exec();
});
第二个作业是相同的,但替换参数几乎相反,它在进程退出时调用。这部分仍然存在一些问题,但想法是一旦通过调用 process.exit()
或 ctrl+c(在 Mac 上)关闭进程,然后我们删除 css 导入语句。
// ctrl + c event
process.on('SIGINT', () => {
Sparky.exec('remove-css');
});
// process.exit called
process.on('exit', () => {
Sparky.exec('remove-css');
});
// uncaught exception
process.on('uncaughtException', () => {
Sparky.exec('remove-css');
});
当我弄清楚为什么我的构建与 remove-css 任务有问题时会更新。