首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么module.export { ...require('module') }有效,而module.export {module.export(‘module’)}无效

module.export { ...require('module') } 是有效的,因为它使用了正确的语法来导出模块。

在Node.js中,我们使用module.exports来导出模块。它是一个特殊的对象,用于定义模块的公共接口。当其他模块使用require函数引入该模块时,它们将获得module.exports对象的引用。

在给定的问题中,module.export { ...require('module') } 使用了正确的语法。它通过使用展开运算符(...)将require('module')的结果合并到module.exports对象中。这样,其他模块在引入该模块时,将获得require('module')返回的对象。

而module.export {module.export('module')} 是无效的,因为它使用了错误的语法。

首先,module.export应该是module.exports的拼写错误。正确的写法是module.exports。

其次,module.exports是一个对象,它不能直接调用函数。在给定的代码中,module.exports('module')试图调用一个名为module.exports的函数,这是错误的。

因此,module.export {module.export('module')} 是无效的,它违反了正确的语法规则。

总结起来,module.export { ...require('module') } 是有效的,因为它使用了正确的语法来导出模块。而module.export {module.export('module')} 是无效的,因为它使用了错误的语法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

前端模块化杂记 前言AMDCMD简介Commonjs简介Module简介Common和Module的区别Module与webpackModule与Babel一些问题总结引用

通过require引入文件, 文件内部则通过module.export暴露,如下a 就是 module.export // 引入某个文件 const a = require('some.js') //...some.js module.export = { ... // some code } 除去module.export,Commonjs还有一个exports属性(不推荐使用), 事实上exports...Module与Babel 虽然webpack可以打包转换我们的module,但通常我们都会引入babel来对ES6转成ES5的代码,Moduel属于ES6,也会被转译。...obj : { default: obj }; } 一些问题 1.为什么有的地方使用 require 去引用一个模块时需要加上 default?...但是我们平时编译好的 js 是无法再被其他模块 import 的,这是为什么

84420

浅谈前端测试

mocks 对象,用来模拟数据,由于 readFileSync 方法可能存在多种返回结果(成功或报错),所以暂时用 jest.fn() 模拟   other 里面则是放一些固定的测试数据(不会随着测试过程改变...require 本身并不复杂,但是如果搞不清楚执行时机,那么测试将无法进行,来一个例子 const env = process.env.NODE_ENV  module.export = () => env...(), 'package.json')   这样就可以 mock,path 了,和上面 mock 章节,大致思想都差不多  覆盖率   单元测试覆盖率不达标等于白测,测试过程尽量覆盖所有判断条件,不是全部通过了就不管了...,在进一阶说,100% 的测试覆盖率并不证明一定覆盖到位了,因为顺带执行的代码也会算进覆盖率,例如 module.export = (list) => list.map(({ id }) => id)...react'  }]  }  test('return id', () => {  expect(getId(mocks.list)).toEqual([1, 2])  })   直到有一天代码变成了 module.export

1.7K10

深圳Web前端学习:js中的模块化--【千锋】

ES6可以做到编译前分析,CMD和AMD都只能在运行时确定具体依赖是什么。 3.2CommonJS 一般服务端的文件都在本地的硬盘上面。...,生成一个对象 区别: CommonJS运行时加载,输出的是值的拷贝,是一个对象(都是由module.export暴露出去的),可以直接拿去用了,不用再回头找。...所以,当module.export的源文件里面一些原始类型值发生变化,require这边不会随着这个变化变化的,因为被缓存了。但是有一种常规的操作,写一个返回那个值的函数。...module.export输出一个取值的函数,调用的时候就可以拿到变化的值。 ES6是编译时输出接口,输出的是值的引用,对外的接口只是一种静态的概念,在静态解释后已经形成。.../a.js');     //...... }); 复制代码 实际上,并没有问题,因为sea自己解决了这个问题: 一个模块有几种状态: 'FETCHING': 模块正在下载中 'FETCHED': 模块已下载

65430

模块化的一些小研究

ES6可以做到编译前分析,CMD和AMD都只能在运行时确定具体依赖是什么。 3.2CommonJS 一般服务端的文件都在本地的硬盘上面。...,生成一个对象 区别: CommonJS运行时加载,输出的是值的拷贝,是一个对象(都是由module.export暴露出去的),可以直接拿去用了,不用再回头找。...所以,当module.export的源文件里面一些原始类型值发生变化,require这边不会随着这个变化变化的,因为被缓存了。但是有一种常规的操作,写一个返回那个值的函数。...module.export输出一个取值的函数,调用的时候就可以拿到变化的值。 ES6是编译时输出接口,输出的是值的引用,对外的接口只是一种静态的概念,在静态解释后已经形成。.../a.js'); //...... }); 实际上,并没有问题,因为sea自己解决了这个问题: 一个模块有几种状态: 'FETCHING': 模块正在下载中 'FETCHED': 模块已下载

28210

模块化的一些小研究0.前言1.script标签引入2.AMD与CMD3.CommonJS与ES64.循环依赖5.webpack是如何处理模块化的

ES6可以做到编译前分析,CMD和AMD都只能在运行时确定具体依赖是什么。 3.2CommonJS 一般服务端的文件都在本地的硬盘上面。...,生成一个对象 区别: CommonJS运行时加载,输出的是值的拷贝,是一个对象(都是由module.export暴露出去的),可以直接拿去用了,不用再回头找。...所以,当module.export的源文件里面一些原始类型值发生变化,require这边不会随着这个变化变化的,因为被缓存了。但是有一种常规的操作,写一个返回那个值的函数。...module.export输出一个取值的函数,调用的时候就可以拿到变化的值。 ES6是编译时输出接口,输出的是值的引用,对外的接口只是一种静态的概念,在静态解释后已经形成。.../a.js'); //...... }); 复制代码 实际上,并没有问题,因为sea自己解决了这个问题: 一个模块有几种状态: 'FETCHING': 模块正在下载中 'FETCHED':

1.2K31

追溯 React Hot Loader 的实现

结果导致, React Hot Loader 没有“发现” module.export 里面包裹的组件,所以没有给它们创建 proxy。...不仅如此,Dan 同样想做一个错误处理的方式,因为当 render() 方法报错的时候,此时组件会处于一种无效状态,此时 hot reload 是没办法工作的,Dan 想一起 fix 掉这个问题。...还记得当年 React-Hot-Loader 在高阶组件上面束手无策吗,它没办法通过 module.export 导出的,包裹在高阶组件里面的组件。...任何 functions,如果 return 出来的是一个有效的 ReactElement 那就可能是一个组件。由于你不能肯定,所以你不得不采用探索法。...在不使用 babel 做静态分析的情况下,你可以通过它找到 module.export 出来的 component,并且 register 到全局,然后在调用端实现真正的代理。

1.3K151

【Vue】webpack的基本使用

导入模块的区别 1、require对应导出的方法是module.exports, import对应的方法是export default/export 2、require 是CommonJs的语法...', 'red') $('li:even').css('background-Color', 'pink') }) 将js文件导入index.html之后,发现没有效果,这时我们就需要webpack...const { Module } = require("webpack"); Module.export = { mode: 'development' } //也可以直接导出内容 // module.export...webpack中的默认约定 大家可能有个疑问,就是打包的时候为什么会打包index.js这个文件,它是怎么寻找的路径等问题。 在webpack4和5的版本中,有如下的默认约定,找不到就会报错。...// 使用node.js的导出语法向外导出一个webpack的配置对象 const path = require("path"); module.exports = { mode: 'development

63010

10. vue之webpack打包原理和用法详解

/dist/bundle.js 那么, 如果在项目下, 可不可以直接使用webpack, 不用每次都指定文件呢?...我们需要在项目根目录下创建一个文件: webpack.config.js 这个名字是固定的 这个js就是要告诉我们哪里是webpack的入口, 哪个是webpack的出口 webpack.config.js module.export.../dist/bundle.js 那么, 如果在项目下, 可不可以直接使用webpack, 不用每次都指定文件呢?...可以的, 我们需要在项目根目录下创建一个文件, webpack.config.js 这个名字是固定的 这个js就是要告诉我们哪个是webpac的入口, 哪个是webpack的出口 通过module.export...可以的, 我们需要在项目根目录下创建一个文件, webpack.config.js 这个名字是固定的 这个js就是要告诉我们哪个是webpac的入口, 哪个是webpack的出口 通过module.export

4.3K20

如何在Vue项目中更优雅地使用svg

css 雪碧图中是把多个背景图片放在一张大的图片中, svg 雪碧图则是把多个 symbol 放在一个大的 svg 中,每个 symbol 代表了一个图标,以后每次想要使用图标...在 vue.config,js 的 module.export 中新增: module.expors = { chainWebpack(config){ //排除icons目录中svg文件处理...svg-sprite-loader 对图标文件夹里面的 .svg 文件进行处理: const path = require('path') function resolve(dir){ return...const req = require.context('....如果下载的时候选择了颜色,就会多出来内联的 fill 属性,此时需要显式指定子元素的 fill 继承自父元素(否则继承的权重很低,样式无法被应用): svg path { fill:inherit } 为什么这里不能写成下面这样呢

12.3K21

抖音二面:为什么模块循环依赖不会死循环?CommonJS和ES Module的处理有什么不同?

CommonJS的module.exports和exports有什么不同? 引入模块时的路径解析规则是什么。 JavaScript的模块化 首先说说为什么会有两种模块化规范。...,发现已经有缓存,则直接读取,不会再去执行一次。...路径解析规则 路径解析规则也是面试常考的一个点,或者说,为什么我们导入时直接简单写一个'react'就正确找到包的位置。...也就是说,CommonJS是把暴露的对象拷贝一份,放在新的一块内存中,每次直接在新的内存中取值,所以对变量修改没有办法同步;ES Module则是指向同一块内存,模块实际导出的是这块内存的地址,每当用到时根据地址找到对应的内存空间...CommonJS的export和module.export指向同一块内存,但由于最后导出的是module.export,所以不能直接给export赋值,会导致指向丢失。

1.5K10
领券