Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react helper导入在生产中失败,但在开发中有效_Javascript_Reactjs_Typescript_Npm - Fatal编程技术网

Javascript react helper导入在生产中失败,但在开发中有效

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

我有一个名为“globalHelper.js”的文件,如下所示:

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