【强迫症必备】干掉 NodeJS 项目 node_modules 和 p - Assbbs
【强迫症必备】干掉 NodeJS 项目 node modules 和 package.json 单文件运行 我们在使用NodeJS的时候,总会出现node modules目录和package.json配置文件,能把强迫症活活气死。 于是,我想了一些办法来干掉这两个恶心玩意,让项目可以单文件运行。 首先,项目不要使用NPM,也不要定义任何NPM方法,例如:np…
【强迫症必备】干掉 NodeJS 项目 node modules 和 package.json 单文件运行 我们在使用NodeJS的时候,总会出现node modules目录和package.json配置文件,能把强迫症活活气死。 于是,我想了一些办法来干掉这两个恶心玩意,让项目可以单文件运行。 首先,项目不要使用NPM,也不要定义任何NPM方法,例如:npm run dev,npm run build,这类通通不要用!有人会问那项目怎么运行,这种一看就是NPM用多了的前端,连NodeJS基本原理都不知道。 NodeJS运行项目的方法:node a.js(a.js是我的项目主体文件) 其次,项目默认定义为CommonJS,而不作为Module运行。前者使用require引入外部模块,后者使用import引入外部模块。前者不需要package.json,后者则需要定义"type":"module"。 这就很明显,如果想避免package.json,则需要使用前者方法。我将项目中的模块引入代码改为: const { createServer } = require 'http' ; const { readFileSync, readFile } = require 'fs' ; 最后,移除万恶的node modules文件夹,需要两个关键: 1. 安装外部模块时,使用 npm i -g 命令,全局安装至系统目录。 2. 引入文件夹时,使用 process.env.APPDATA 变量直接调用系统路径。 举例说我想引入 MongoDB 模块,则使用的代码为: const { MongoClient, ObjectId } = require process.env.APPDATA + '/npm/node modules/mongodb' ; 至此,我们的项目目录就干净了,非常的完美! 顺便补充一句,如果IDE(VSCode)有下划线提示“文件可能转换为ES模块”,把扩展名改成.cjs强行指定为CommonJS就解决了。