Javascript react helper导入在生产中失败,但在开发中有效
我有一个名为“globalHelper.js”的文件,如下所示:Javascript react helper导入在生产中失败,但在开发中有效,javascript,reactjs,typescript,npm,Javascript,Reactjs,Typescript,Npm,我有一个名为“globalHelper.js”的文件,如下所示: exports.myMethod = (data) => { // method here } exports.myOtherMethod = () => { ... } import helper from "../Helper/globalHelper"; 等等 我在其他文件中导入助手,如下所示: exports.myMethod = (data) => { // metho
exports.myMethod = (data) => {
// method here
}
exports.myOtherMethod = () => { ... }
import helper from "../Helper/globalHelper";
等等
我在其他文件中导入助手,如下所示:
exports.myMethod = (data) => {
// method here
}
exports.myOtherMethod = () => { ... }
import helper from "../Helper/globalHelper";
现在有一个问题:
在过去,在运行我的构建脚本时,一切都与此相关:
"build": "GENERATE_SOURCEMAP=false react-scripts build"
但由于某些原因,当我运行“npm运行构建”时,我得到了错误:
Attempted import error: '../Helper/globalHelper' does not contain a default export (imported as 'helper')
然而,当我简单地启动我的开发服务器(NPMStart)时,一切正常
我已经尝试从“./helper/globalHelper”导入类似的import{helper}代码>,但这也不起作用。
有人知道如何解决这个问题吗?既然你没有导出默认值
,你应该导入带有{}
的函数,比如:
import {helper} from "../Helper/globalHelper";
由于您没有导出默认值,因此应该使用{}导入函数,如下所示:
import {helper} from "../Helper/globalHelper";
尝试使用ES6语法像这样导出
export const myOtherMethod = () => { ... }
然后
您使用的导出方法是CJS。您需要使用require来获取方法
Node.js中使用CommonJS(CJS)格式,并使用require和require
module.exports以定义依赖项和模块。npm生态系统
是建立在这种格式之上的
如果您想使用模块方法,您可以这样做
export { myOtherMethod1, myOtherMethod2 }
然后你就这样进口
import * as Module from '....file name'
尝试使用ES6语法像这样导出
export const myOtherMethod = () => { ... }
然后
您使用的导出方法是CJS。您需要使用require来获取方法
Node.js中使用CommonJS(CJS)格式,并使用require和require
module.exports以定义依赖项和模块。npm生态系统
是建立在这种格式之上的
如果您想使用模块方法,您可以这样做
export { myOtherMethod1, myOtherMethod2 }
然后你就这样进口
import * as Module from '....file name'
问题是。。。我不想只导入一个方法,而是导入我的整个helper,这样我就可以在其他类中使用“helper.myMethod”
import*作为“../helper/globalHelper”
的helper尝试过了,不起作用…@SnakeShadow当我这样做时,import*作为helper…
和console.log(helper)
你看到了什么,我看到了一个方法对象,正如我所希望的那样。正如我所说:它在开发中有效,但在我进行“npm构建”时失败。问题是。。。我不想只导入一个方法,而是导入我的整个helper,这样我就可以在其他类中使用“helper.myMethod”import*作为“../helper/globalHelper”
的helper尝试过了,不起作用…@SnakeShadow当我这样做时,import*作为helper…
和console.log(helper)
你看到了什么,我看到了一个方法对象,正如我所希望的那样。正如我所说:它在开发中有效,但在我进行“npm构建”时失败。这实际上起到了帮助作用:我将导入从作为帮助者的import*从../helper/globalHelper
更改为'const helper=require('../globalHelper.js')
。这样做太好了。。。现在,当我在生产环境中运行我的应用程序时,我得到了未捕获的引用错误:导出未定义
…但仍然。。。。它只发生在生产中,而不是在开发中……您需要使用我提供的方法,而不是模块导出方法。在开发中,您将其作为服务器运行,当您执行npm运行build时,您将构建静态文件。浏览器不支持CJS这实际上很有帮助:我将导入内容从作为帮助者的import*从../helper/globalHelper
更改为'const helper=require('../globalHelper.js')
。这样太好了。。。现在,当我在生产环境中运行我的应用程序时,我得到了未捕获的引用错误:导出未定义
…但仍然。。。。它只发生在生产中,而不是在开发中……您需要使用我提供的方法,而不是模块导出方法。在开发中,您将其作为服务器运行,当您执行npm运行build时,您将构建静态文件。浏览器不支持CJS