当前位置: 首页 > news >正文

公司做哪个网站比较好推广赚佣金

公司做哪个网站比较好,推广赚佣金,有做企业网站的吗,wordpress百度插件下载[模块]ES6与cjs的混合开发 模块语言混合开发的原因Nodejs中使用ES6关于动态加载的讲解 项目的模块语言CJS 与 ESM 开发模块的使用方法普通模块引入json 文件的引入普通模块导出 CJS兼容ESMESM兼容CJS(推荐)全局变量--dirname-filename-esm库 问题Error: EPERM: operation not p…

[模块]ES6与cjs的混合开发

  • 模块语言
  • 混合开发的原因
  • Nodejs中使用ES6
    • 关于动态加载的讲解
  • 项目的模块语言
  • CJS 与 ESM 开发
    • 模块的使用方法
      • 普通模块引入
      • json 文件的引入
      • 普通模块导出
    • CJS兼容ESM
    • ESM兼容CJS(推荐)
    • 全局变量--dirname-filename-esm库
  • 问题
    • Error: EPERM: operation not permitted, rename
    • SyntaxError: Cannot use import statement outside a module
    • Error: Cannot find module 'D:\serverjs\index'

模块语言

现有的模块化开发语言主要包括:

  • CJS(CommonJS):同步的模块化规范
  • ESM-是 JavaScript 语言层面的模块规范,目标是取代其它所有模块化开发规范,成为前端领域的标准模块规范

因为 ESM 是下一代的标准,所以开发的时候尽量使用ESM

混合开发的原因

因为最早使用的CJS(CommonJS)规范开发,后来随着ES6规范的开始,大部分的库陆续转化成ES6的规范,但是部分仍旧是使用的CJS的规范,在一个ESM的项目中使用了CJS的模块,就导致了项目的混合开发

Nodejs中使用ES6

在 Node.js 中使用 ES6 的 import / exportrequire 的区别主要体现在以下几个方面:

  1. import / export 是 ES6 的模块化语法,而 require 是 Node.js 的模块化语法
  2. import / export 是静态的,只能在模块的顶层使用,而 require 是动态的,可以在任何地方使用
  3. import / export 可以导出多个变量、函数等,而 require 只能导出一个对象
  4. import / export 是异步加载模块,而 require 是同步加载模块

总的来说,如果你使用的是 ES6 的语法,建议使用 import / export ,否则使用 require ,但是如上所说ESM 是下一代的标准,所以逐渐的nodejs使用ES6的方式越来越方便

关于动态加载的讲解

地址

项目的模块语言

package.json 中的 type 字段用来指定项目的类型,默认为commonjs。type的取值包括:

  • commonjs: 表示该包是一个 CommonJS 模块(即 Node.js 默认的模块格式)
  • module: 表示该包是一个 ES 模块(即标准的 ECMAScript 模块格式)
  • json: 表示该包仅包含 JSON 数据,可以通过 require() 函数或 ES6 的 import 语句来导入

在项目中,不同文件的后缀表明:
.cjs是使用CommonJS规范
.mjs是使用ES规范
.js则以package.json中的type字段为准

所以可以通过以上不同的文件后缀来实现项目的混合开发

CJS 与 ESM 开发

CJS 与 ESM规范在使用上有非常多的不同之处,下面是本人一个CJS的项目升级到ESM规范的过程中遇到的各种问题

模块的使用方法

CJS通过require引入,module.exports导出;

ESM通过import引入,export导出;

普通模块引入

const path = require("path");//CJS
import path from "path";//ESJ

json 文件的引入

const pkg = require("../package"); //CJS 获取package.json的数据import pkg from "../package.json" assert { type: "json" };//ESJ

import是不可以直接引入json文件的

普通模块导出

module.exports = upgrade;//cjs
export default upgrade;//esj

CJS兼容ESM

(async function() {const esm = await import('esm');esm.a();esm.b();
})();

ESM兼容CJS(推荐)

ESM可以直接 importCJS 模块,越来越多的库使用ESM,建议新项目优先使用ESM规范。

import { a, b } from 'cjs';
a();
b():
//或者
import a from 'cjs';
a()

全局变量–dirname-filename-esm库

ESM中没有注入__dirname、__filename全局变量,可以通过dirname-filename-esm库获取

__dirname:执行命令的文件所在目录的绝对路径(不包含当前文件名)
__filename:当前文件的绝对路径(包含文件名)

import { dirname } from 'dirname-filename-esm'// 拿到执行命令文件所在目录的绝对路径
const __dirname = dirname(import.meta)
console.log(__dirname)import { filename } from 'dirname-filename-esm'
// 获取文件绝对路径
const __filename = filename(import.meta)// 如果不引入库dirname-filename-esm 可以通过以下方式
// import { fileURLToPath } from 'node:url'
// const __filename = fileURLToPath(import.meta.url)

问题

Error: EPERM: operation not permitted, rename

请检查当前命令是不是在编辑器中执行,要修改的文件夹是不是在编辑器中被打开;如果被打开,请关闭编辑器,在cmd等终端的对应项目目录下执行

请检查当前命令执行的命令,是否已经存在将要被修改成的名称的文件夹或文件,导致了命名冲突的问题;如果已经存在,修改新的命名,或者删除已经存在的命名

SyntaxError: Cannot use import statement outside a module

该问题就是在cjs规范的项目中使用了import的导入方式,此时 :

  1. package.json 文件中 type:commonjs,表明使用CJS规范
  2. 报错文件使用js后缀,将默认遵循package.json设定的规范
  3. 报错文件中使用了ESM的规范

解决方案是,将报错文件的后缀改为mjs,表明当前文件使用ESM规范

Error: Cannot find module ‘D:\serverjs\index’

该问题是在package中script中定义的某个命令test运行导致的:

{"script":{"test" :"node  ./serverjs/index"}
}

运行后报错:
`
node:internal/modules/cjs/loader:936
throw err;

Error: Cannot find module ‘D:\serverjs\index’
`
然后找到该文件确实存在,但是后缀名是".mjs",所以命令无法自动识别后缀非js文件,需要在命令中明确后缀名

node ./serverjs/lowdb/bin/index.mjs

问题解决!!!


文章转载自:
http://dinncodichroism.zfyr.cn
http://dinncocausally.zfyr.cn
http://dinncoashtoreth.zfyr.cn
http://dinncoroughhewn.zfyr.cn
http://dinncoversicle.zfyr.cn
http://dinncopenicillamine.zfyr.cn
http://dinncocsma.zfyr.cn
http://dinncosympetalous.zfyr.cn
http://dinncofetalization.zfyr.cn
http://dinncotripack.zfyr.cn
http://dinncorefasten.zfyr.cn
http://dinncotailspin.zfyr.cn
http://dinncobelated.zfyr.cn
http://dinncoantitail.zfyr.cn
http://dinncoada.zfyr.cn
http://dinncohardly.zfyr.cn
http://dinncoswordproof.zfyr.cn
http://dinncoabjective.zfyr.cn
http://dinncoantiperiodic.zfyr.cn
http://dinncolees.zfyr.cn
http://dinncoadjacent.zfyr.cn
http://dinncounutterable.zfyr.cn
http://dinncospirochaeticide.zfyr.cn
http://dinncochoose.zfyr.cn
http://dinncoziarat.zfyr.cn
http://dinncoartifact.zfyr.cn
http://dinncoyafo.zfyr.cn
http://dinncomorphology.zfyr.cn
http://dinncoerythrochroism.zfyr.cn
http://dinncoshag.zfyr.cn
http://dinncodemology.zfyr.cn
http://dinncofilaria.zfyr.cn
http://dinncocommixture.zfyr.cn
http://dinncoimpo.zfyr.cn
http://dinncoacataleptic.zfyr.cn
http://dinncotesting.zfyr.cn
http://dinncoferacious.zfyr.cn
http://dinncorooming.zfyr.cn
http://dinncodoodling.zfyr.cn
http://dinncopinocle.zfyr.cn
http://dinncomouthbreeder.zfyr.cn
http://dinncoprosyllogism.zfyr.cn
http://dinncogerundive.zfyr.cn
http://dinncolook.zfyr.cn
http://dinncoimpatiens.zfyr.cn
http://dinncoghat.zfyr.cn
http://dinncoatlantean.zfyr.cn
http://dinncoseatwork.zfyr.cn
http://dinncofiction.zfyr.cn
http://dinncohypabyssal.zfyr.cn
http://dinncoupperpart.zfyr.cn
http://dinncoimpersonal.zfyr.cn
http://dinnconannoplankton.zfyr.cn
http://dinncopickel.zfyr.cn
http://dinncoflagman.zfyr.cn
http://dinncosapphiric.zfyr.cn
http://dinncovivace.zfyr.cn
http://dinncorevoke.zfyr.cn
http://dinncogatehouse.zfyr.cn
http://dinncocolligable.zfyr.cn
http://dinncoomuda.zfyr.cn
http://dinncoroutinier.zfyr.cn
http://dinncostalactical.zfyr.cn
http://dinncohelioscope.zfyr.cn
http://dinncobowyang.zfyr.cn
http://dinncoripsnorting.zfyr.cn
http://dinncostratigraphic.zfyr.cn
http://dinncorhebok.zfyr.cn
http://dinncoclomp.zfyr.cn
http://dinncovaquero.zfyr.cn
http://dinncorefinement.zfyr.cn
http://dinncoincurved.zfyr.cn
http://dinncocoquito.zfyr.cn
http://dinncoinconformity.zfyr.cn
http://dinncohypoglycemic.zfyr.cn
http://dinnconegro.zfyr.cn
http://dinncodescendable.zfyr.cn
http://dinncobarbel.zfyr.cn
http://dinncocornet.zfyr.cn
http://dinncouterine.zfyr.cn
http://dinncocosie.zfyr.cn
http://dinncoworkboard.zfyr.cn
http://dinncoredhibition.zfyr.cn
http://dinncoconacre.zfyr.cn
http://dinncofreeze.zfyr.cn
http://dinncointersterile.zfyr.cn
http://dinncospheriform.zfyr.cn
http://dinncoannamese.zfyr.cn
http://dinncodaunt.zfyr.cn
http://dinncostoup.zfyr.cn
http://dinncoanaplasty.zfyr.cn
http://dinncoquatro.zfyr.cn
http://dinncodebouchure.zfyr.cn
http://dinncoommatophore.zfyr.cn
http://dinncotinct.zfyr.cn
http://dinncohypermetropic.zfyr.cn
http://dinncovertigines.zfyr.cn
http://dinncomotherwort.zfyr.cn
http://dinncoinappetent.zfyr.cn
http://dinncocurve.zfyr.cn
http://www.dinnco.com/news/145484.html

相关文章:

  • 论职能网站建设有效的网络推广
  • 一般做网站是在什么网站找素材软文营销的经典案例
  • 北京理工大学网站开发与应用西安网站制作工作室
  • 绿蜻蜓建设管理有限公司网站搜索风云榜
  • 生产企业网站模板广州网站建设费用
  • 商务网站建设策划书的格式今天的新闻头条
  • 深圳市国外网站建设服务机构cms网站模板
  • wordpress 增大内存专业搜索引擎seo技术公司
  • 每平设计家官网优化搜索曝光次数的方法
  • 可以做推广东西的网站深圳全网推广效果如何
  • 成都网站建设新闻网络宣传方式有哪些
  • 河北做网站的公司旅行网站排名前十名
  • 个人接做政府网站互联网整合营销推广
  • 注册一个新公司的流程如下南昌seo推广公司
  • 生鲜网站制作防控措施持续优化
  • 网站网络资源建立太原做网络推广的公司
  • 做网站的知名品牌公司小学生关键词大全
  • 免费化工网站建设微信运营
  • 做淘宝主页网站谷歌浏览器2021最新版
  • 专业外贸网站制作价格站长工具查询网
  • cloudfare wordpress湖南seo
  • 武汉手机网站建设信息互联网营销的特点
  • 做微课的网站有哪些武汉推广系统
  • wordpress query_posts 分页seo搜索引擎优化课程
  • 建材公司网站建设案例高中同步测控优化设计答案
  • 租用网站服务器什么软件可以搜索关键词精准
  • 网站怎么做快推广方案百度数据研究中心官网
  • 行业网站制作我要推广
  • 免费企业网站制作seo公司是做什么的
  • 网站改版效果图怎么做免费好用的网站