Javascript Nested package.json在Nuxt项目中,如何让babel等在嵌套包中工作
我试图将嵌套的package.json文件添加到我的项目中,以便为模块提供单独的服务器和客户端实现,但这破坏了babel的理解。我不知道如何将原始Nuxt构建配置应用于该模块 在我的应用程序中,我的插件大致如下:Javascript Nested package.json在Nuxt项目中,如何让babel等在嵌套包中工作,javascript,nuxt.js,babeljs,Javascript,Nuxt.js,Babeljs,我试图将嵌套的package.json文件添加到我的项目中,以便为模块提供单独的服务器和客户端实现,但这破坏了babel的理解。我不知道如何将原始Nuxt构建配置应用于该模块 在我的应用程序中,我的插件大致如下: //实现`processData'所需的仅节点虚拟导入` 从“fs”导入fs; 导出默认类MyPlugin{ 静态类型_NAME='MyPlugin'; 静态validateConfig(配置){} 构造函数(配置){} 验证数据(数据){} 异步进程数据(数据){} } 验证没有在
//实现`processData'所需的仅节点虚拟导入`
从“fs”导入fs;
导出默认类MyPlugin{
静态类型_NAME='MyPlugin';
静态validateConfig(配置){}
构造函数(配置){}
验证数据(数据){}
异步进程数据(数据){}
}
验证没有在构造函数中完成,因为配置和类型名存储在数据库中,插件稍后实例化,所以设置配置的时间和我们需要实例的时间相差很远。数据也是如此processData
也是这里唯一应该与外部世界对话的东西,因此它是异步的。我们还假设这取决于一些仅节点的API,如fs
现在,我也希望能够在客户机上进行验证,因此我需要将processData
问题分离出来。但我想仍然能够引用插件,因为它是。此时的基线行为与预期的一样:从前端模块导入此模块会导致生成失败,因为未找到fs
,删除仅节点代码会使其成功
我认为嵌套的package.json
为服务器和客户端声明单独的入口点会有所帮助,如下所示:
{
“名称”:“我的插件”,
“版本”:“0.0.0”,
“私人”:没错,
“main”:“/index.server.js”,
“浏览器”:“/index.client.js”
}
。。。但是,这会以新的方式破坏构建:
SyntaxError: /.../index.server.js: Support for the experimental syntax 'classProperties' isn't currently enabled
即使我删除了类属性
/.../index.server.js:1
SyntaxError: Cannot use import statement outside a module
我知道这意味着什么,但配置JS构建系统不是我的强项。这些是(希望是)所有非标准的相关配置:
.babelrc
:不仅在测试环境中使用,还添加了类属性语法
{
“预设”:[
[
“@babel/preset env”,
{
“目标”:{
“节点”:“当前”
}
}
]
],
“插件”:[
“@babel/插件建议类属性”
]
}
package.json
:使用babel节点
来运行服务器(当然还有很多依赖项)(我知道,babel节点
并不意味着要运行生产版本)
{
...
“脚本”:{
“dev”:“cross env NODE_env=development nodemon--exec babel NODE server/index.js--watch server”,
“构建”:“nuxt构建”,
“开始”:“交叉环境节点_env=production babel NODE server/index.js”,
...
},
“依赖性”:{
“@babel/node”:“^7.10.5”,
“@babel/plugin提案类属性”:“^7.10.4”,
...
}
}
numxt.config.js
:使用core.js3
module.exports={
模式:“通用”,
...
插件:[
],
构建模块:[
“@nuxtjs/vuetify”,
],
模块:[
// https://axios.nuxtjs.org/
“@nuxtjs/axios”,
],
...
建造:{
扩展(配置,ctx){
},
巴别塔:{
//envName:服务器、客户端、现代
预设({envName}){
返回[
[
“@nuxt/babel预设应用程序”,
{
corejs:{version:3},
},
],
];
},
},
},
};
我试图添加到我的nuxt配置中,并将我的
.babelrc
复制到嵌套包中,但没有成功
你知道我该怎么做吗?或者,我可以做什么来代替添加这个package.json