首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用zx编写shell脚本

    fs-extra[8]。一个暴露Node.js核心fs模块的库,以及一些额外的方法,使其更容易与文件系统一起工作。 现在我们知道了zx给了我们什么,让我们用它创建第一个shell脚本。...如果which找到了程序的路径,它将返回该程序。否则,如果该程序找不到,它将抛出一个错误。如果有任何程序找不到,我们就调用exitWithError辅助函数来显示一个错误信息并停止运行脚本。...Node.js支持两种模块类型: CommonJS Modules[12] (CJS)。使用module.exports来导出函数和对象,在另一个模块中使用require()加载它们。...使用export来导出函数和对象,在另一个模块中使用import加载它们。 Node.js生态系统正在逐步采用ES模块,这在客户端JavaScript中是很常见的。...本文中的所有代码都可以在GitHub[24]上找到

    4K20

    2024年 Node.js 精选:50款工具库集锦,项目开发轻松上手(一)

    使用debug的示例 基本用法: const debug = require('debug')('my-module'); debug('Starting the module'); // ...执行模块逻辑...fs-extra库作为Node.js内建的fs模块的扩展,提供了丰富的附加功能和实用工具,极大地简化了文件系统操作。...fs-extra的优势 扩展的功能:相较于核心fs模块fs-extra提供了更广泛的文件和目录操作功能。 便利的函数:简化了复制、移动、删除和创建目录等常见任务。...健壮的错误处理:提供了强大的错误处理机制,确保优雅的错误恢复。 跨平台兼容性:在不同操作系统中保持一致的工作表现。...使用fs-extra的示例 递归复制目录: const fs = require('fs-extra'); fs.copy('./src', '.

    57210

    组件库构建过程

    手动加载样式。...首先,前置一个自动化收集组件目录的工作,生成components.json用来作为webpack入口,实现的build/component.js代码如下: const fs = require('fs-extra...-commonjs、webpack模块化原理-ES module、webpack模块化原理-Code Splitting),而通常作为按需加载来说,用户会有自己的webpack,那么组件库需要做的就是把...那么,基于上面webpack编译的文件,我会用vue-sfc-compiler编译出的更小的文件做覆盖,具体代码如下: const fs = require('fs-extra'); const compiler...在上一步,按需加载阶段,其实已经把每个组件编译好了,那么入口文件,其实只要用babel做个转换就可以了,这里用到gulp来操作,代码如下: const gulp = require('gulp'); const

    51820

    TRTC Electron SDK 常见问题收录

    ,而实际上 Electron 安装失败,只生成了 node_modules/electron 目录,目录中的文件不完整,脚本中的 "path.txt" 也不存在,导致运行时抛出异常。...true 改为了 false ,导致默认情况下不支持 node 模块,比如 require、path等常用模块。...webPreferences: { nodeIntegration: true, // 请将此项设置为 true }, }); 打包时遇到的问题 问题1:.node 模块加载问题...8F-from-react-to-an-electron-app-ready-for-production-a0468ecb1da3 • loaded parent configuration preset=react-cra 其中 public/electron.js not found 指的就是无法找到入口文件...模块的语法错误 在执行打包时,出现以下错误: [项目目录]\node_modules\electron-builder\node_modules\fs-extra\lib\empty\index.js

    5K20

    (满满干货)从零实现命令行脚手架工具——自动初始化项目工程以及发布到NPM

    不过,需要注意的是fs-extra模块是添加了本机fs模块包含的文件系统方法,并向fs方法添加了promise支持。它还使用优美的fs来防止EMFILE错误。它应该是fs的替代品。...这里我们看到引入两个模块,分别是fs、chalk。Node.js内置的fs模块就是文件系统模块,负责读写文件。chalk模块是美化命令行输出样式,使输出命令不再单调。...child_process模块是nodejs的一个子进程模块,可以用来创建一个子进程,并执行一些任务。比如说就可以直接在js里面调用shell命令。 介绍完引入的模块,然后再介绍下面的代码。...如果错误,就删除远程项目工程目录。否则,就判断....第一部分为主版本号,变化了表示有了一个兼容上个版本的大更改。第二部分为次版本号,变化了表示增加了新功能,并且可以向后兼容。第三部分为修订版本号,变化了表示有bug修复,并且可以向后兼容。

    57820

    gulp+webpack工具整合简介

    这样,我们就可以通过 require加载任何类型的模块或文件,比如 CoffeeScript、 JSX、 LESS 或图片。...合并相同的模块: new webpack.optimize.DedupePlugin() 说明:该插件会把相同的模块合并,推荐使用,最好自己做到模块唯一性,如果打出来两个相同的模块,说明你的代码潜藏出错风险...解决方法:在加载器里面加上-convertValues参数。 问题三,css require的优先级问题,按照常理是后require的css是后加载。...但是在实践过程中,(1)通过import引入的js模块中引入的css是优先于require引入的js模块中引入的css;(2)js中require的css名称如果和js所在模块的文件夹名字相同即使部分相同的话...('gulp'), argv = require('yargs').argv, fs = require('fs'), fse = require('fs-extra'),

    1.5K80

    gulp+webpack工具整合简介

    这样,我们就可以通过 require加载任何类型的模块或文件,比如 CoffeeScript、 JSX、 LESS 或图片。...合并相同的模块: new webpack.optimize.DedupePlugin() 说明:该插件会把相同的模块合并,推荐使用,最好自己做到模块唯一性,如果打出来两个相同的模块,说明你的代码潜藏出错风险...解决方法:在加载器里面加上-convertValues参数。 问题三,css require的优先级问题,按照常理是后require的css是后加载。...但是在实践过程中,(1)通过import引入的js模块中引入的css是优先于require引入的js模块中引入的css;(2)js中require的css名称如果和js所在模块的文件夹名字相同即使部分相同的话...('gulp'), argv = require('yargs').argv, fs = require('fs'), fse = require('fs-extra'),

    2.4K50

    yyds,这可能是你第一个自定义的脚手架

    fs 和 fs-extra 这2个库主要用于nodejs环境下对文件的操作,fs-extra是fs的拓展,让更少代码可以实现同样的操作。...loadingDemo = async (message: T): Promise => { const spinner = ora(message); spinner.start(); // 开启加载...一般配套系列的鉴权流程,假如是一个public的仓库其实没必要做那么多额外的安全操作;其次项目也是想尽量减少三方制约的规则,方便以后作为一个纯净版项目移植到其他地方,可以到shelljs满足不了的情景再考虑加入api模块...mainLine(projectName); } catch (err) { console.log(red('❌ Error: ' + err)); } }; 在create方法中,所有步骤的错误都会被.../lib/creator.ts)调用,本地开发是没问题的: import { loading } from '@root/src/utils/global'; 但是在tsc编译后再运行就会出错,原因是无法识别

    80520

    靓仔快来!!用typescript带你搭建一个自己的脚手架

    fs 和 fs-extra 这2个库主要用于nodejs环境下对文件的操作,fs-extra是fs的拓展,让更少代码可以实现同样的操作。...loadingDemo = async (message: T): Promise => { const spinner = ora(message); spinner.start(); // 开启加载...一般配套系列的鉴权流程,假如是一个public的仓库其实没必要做那么多额外的安全操作;其次项目也是想尽量减少三方制约的规则,方便以后作为一个纯净版项目移植到其他地方,可以到shelljs满足不了的情景再考虑加入api模块...projectName); } catch (err) { console.log(red('❌ Error: ' + err)); } }; 复制代码 在create方法中,所有步骤的错误都会被...creator.ts)调用,本地开发是没问题的: import { loading } from '@root/src/utils/global'; 复制代码 但是在tsc编译后再运行就会出错,原因是无法识别

    1.6K10

    Create React App 源码揭秘

    chalk # 为`create-react-app`安装`commander` $ lerna add commander --scope=create-react-app # 如果安装失败,请检查拼写是否错误或者查看子包是否有命名空间...文件写入部分配置 const fse = require('fs-extra') const init = async () => { // ......('chalk') const fs = require('fs-extra') const webpack = require('webpack') const configFactory = require...,可自行选择构建工具,依赖管理,单元测试等配套设施 各模块仓库体积一般不会太大 使用多个仓库管理的缺点 仓库分散不好找,当很多时,更加困难,分支管理混乱 版本更新繁琐,如果公共模块版本变化,需要对所有模块进行依赖的更新...CHANGELOG梳理异常折腾,无法很好的自动关联各个模块的变动联系,基本靠口口相传 使用monorepo管理的缺点 统一构建工具,对构建工具提出了更高要求,要能构建各种相关模块 仓库体积会变大 使用

    3.6K20

    Webpack打包流程分析

    文件操作依赖npm install tapable fs-extra -D接下来我们在 src 目录下新建两个入口文件和一个公共模块文件:mkdir src && cd src && touch entry1...entry 配置的方式多样化,如:可以传(有默认值)、可以传入 string,也可以传入对象指定多个入口。所以读取入口文件需要考虑并兼容这几种灵活配置方式。...runLoaders(modulePath) { const matchLoaders = []; // 1、找到模块相匹配的 loader const rules = this.options.module.rules...虽然添加进入模块编译 但是仍要在这个模块上记录被依赖的入口模块 this.modules.forEach((module) => { if (module.id...// plugins/custom-webpack-pluginsconst fs = require('fs-extra');const path = require('path');class CustomWebpackPlugin

    90220

    如何开发一个极简的前端脚手架

    很快,同事们就发现这种方式的几个问题 手动修改配置容易出现漏改 每次克隆项目太过麻烦 模版项目的优化无法同步 解决方案 虎妞计划,建立一个简单的脚手架,打包成一个npm包,发布到公司私有库中,其他同事只要在全局安装了这个包...dotenv: 用于加载环境变量,从而避免将配置敏感信息硬编码到代码中。 download-git-repo: 用于从 Git 仓库下载文件或整个仓库,支持多种协议(如 HTTP、SSH)和分支。...fs-extra: 扩展了 Node.js 原生的文件系统模块(fs),提供了更多的方法,如复制、移动、删除等,方便文件的操作。..."chalk": "4.0.0", "commander": "10.0.0", "dotenv": "^16.1.4", "download-git-repo": "3.0.2", "fs-extra...现有的项目模版是一次性的,如果拉下来,就无法继续更新了,如果能够把整个项目模版打成一个安装包在项目中安装,这样我们唯一统一的项目模版,有新功能的更新,只需要改一次,其他平台更新依赖就可以了。

    36020

    Webpack完整打包流程分析

    文件操作依赖npm install tapable fs-extra -D接下来我们在 src 目录下新建两个入口文件和一个公共模块文件:mkdir src && cd src && touch entry1...entry 配置的方式多样化,如:可以传(有默认值)、可以传入 string,也可以传入对象指定多个入口。所以读取入口文件需要考虑并兼容这几种灵活配置方式。...runLoaders(modulePath) { const matchLoaders = []; // 1、找到模块相匹配的 loader const rules = this.options.module.rules...虽然添加进入模块编译 但是仍要在这个模块上记录被依赖的入口模块 this.modules.forEach((module) => { if (module.id...// plugins/custom-webpack-pluginsconst fs = require('fs-extra');const path = require('path');class CustomWebpackPlugin

    92720
    领券