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

制作商城网站开发商建设审批网站

制作商城网站,开发商建设审批网站,青海省住建局和建设厅门户网站,有没有wordpress上的论坛需求 后端有个nodejs 基础库,用typescript编写,需要发包到代码仓库上,被其它业务引入。这其中就涉及了: 编译, 打包,发包。 工作流速览 前提依赖 webpack主体 npm install --save-dev webpack webpack…

需求

后端有个nodejs 基础库,用typescript编写,需要发包到代码仓库上,被其它业务引入。这其中就涉及了: 编译, 打包,发包。

工作流速览

前提依赖

webpack主体

npm install --save-dev  webpack webpack-cli

webpack插件

npm install --save-dev webpack-node-externals  ts-loader 

编译相关

npm instsall --save-dev typescript

基础示例

这个是工作流,可以看到从最初的源文件,一直到发包的打包文件的转换过程。这其中涉及到3个配置文件

  • package.json 用于包依赖管理(装依赖 和 发包)
  • webpackage.config.js 用于触发编译(typescript编译) 和 打包(把编译后的文件 打到一个文件里
  • tsconfig.json 用于编译使用,将typescript文件编译成JavaScript文件。

tsconfig.json

{"compilerOptions": {"baseUrl": "./","declaration": true,"allowSyntheticDefaultImports": true,"skipLibCheck": true,"emitDecoratorMetadata": true,"resolveJsonModule": true,"esModuleInterop": true,"experimentalDecorators": true,"lib": ["es2015", "es2016", "es2017.object", "es2020.Promise", "esnext.asynciterable", "dom"],"module": "nodeNext","moduleResolution": "nodeNext","noImplicitAny": false,"outDir": "./dist","composite": true,"sourceMap": true,"strict": true,"strictPropertyInitialization": false,"target": "es2017","types": ["jest"],// "types": ["node"],"typeRoots": ["node_modules/@types"],},"compileOnSave": true,"include": ["src/**/*", "index.ts"],"exclude": ["node_modules/**/*", "**/*.d.ts", "test"],
}

webpack.config.js

const path = require('path');
const nodeExternals = require('webpack-node-externals');module.exports = {entry: './src/index.ts', // 指定入口文件为 src 目录下的 index.tstarget: 'node', // 指定打包目标为Node环境externals: [nodeExternals()], // 排除 node_modules 中的模块devtool: 'source-map',module: {rules: [{test: /\\.ts$/,use: 'ts-loader',exclude: /node_modules/,},],},resolve: {extensions: ['.tsx', '.ts', '.js'],preferRelative: true,},output: {filename: 'bundle.js', // 输出文件名path: path.resolve(__dirname, 'dist'), // 输出目录设置为根目录下的 dist 文件夹libraryTarget: "commonjs" },
};
  • target: 指定运行时环境,这里是在后端node环境运行,填写node。
  • exclude: 排除 node_module等不需要打包的文件。
  • debug: source map, 关联打包文件和源文件,以开启 vscode等IDE debug时的断点。
  • 编译:会用tsconfig.json文件进行编译

编译后打包

npx webpack

执行webpack的过程,会先触发编译下,然后打包

解释结果

编制结果在 dist文件夹里,可以查看里面内容如下,ls ./dist

bundle.js :就是webpack打包的结果。
bundle.js.map :用于debug的文件,source map参数开始后,关联bundle.js和源码的文件。
index.d.ts :声明文件,typescript 编译index.ts时,产生的声明文件,src 里包含了其它*.ts的声明文件。

发包

package.json

最后,如果要发包注意下 package.json, main的入口是打包的文件生成的地方,

{"name": "nodejs-webpack-demo","version": "1.0.0","description": "","main": "./dist/bundle.js","types": "./dist/index.d.ts", "scripts": {"test": "echo \\"Error: no test specified\\" && exit 1"},"author": "","license": "ISC","devDependencies": {"ts-loader": "^9.5.1","webpack": "^5.92.1","webpack-cli": "^5.1.4","webpack-node-externals": "^3.0.0"},"dependencies": {"mongoose": "^8.4.4"}
}

同时注意下,webpack.config.js里面的output中的libraryTarget,需要根据不同的运行环境,输出为指定格式,否则无法引入使用。

发包命令,用npm发包,进入到包的目录下

// 如果需要使用私有仓库
npm config set registry <https://your-registry.com>
// 登录
npm login
// 发包
npm publish

或是用 yarn ,注意这个需要在 包的外层执行 ,假设你的包文件是common,则需要在路径…/common, 即包文件的外层执行

yarn publish --registry=http://127.0.0.1:8081/repository/my-npm-repo/ --new-version 1.0.0 common

代码参考

代码地址 :https://github.com/Wunan777/webpack-demo

http://www.yayakq.cn/news/128134/

相关文章:

  • 建设营销型网站模板深圳坂田做网站
  • 网站建设实用的网站长沙做网站费用
  • 建设网站有哪些参考文献内容导购网站模板
  • 网站做扫一扫专门做中文音译歌曲的网站
  • 太原网站优化多少钱php网站修改代码
  • 做网站如何推广怎么开微信商城
  • 国内做网站群平台的公司宁波网站建设大概要多少钱
  • 北京建工博海建设有限公司网站化妆品瓶子怎么做网站
  • 青州网站搭建wordpress可以上传网页
  • 有关建设网站的论文南乐网站建设费用
  • 网站建设有关的职位wordpress 极验
  • 建设医院网站ppt重庆建设厅网站公示公告栏
  • 想找做海报的超清图片去哪个网站找ai智能营销系统
  • 建设公司双网注册苏州seo网站系统
  • 苏州网站建设营销推广做卷闸门网站有用吗
  • 青山湖网站建设高密专业网站建设价格
  • 南通网站制作外包德国网站域名后缀
  • 做家教的网站石佛营网站建设
  • 毕设做网站可以用模板吗网站建设番禺
  • 中文域名网站中国已封城市名单
  • 做ppt常用图片网站有哪些前程无忧招聘网站标记怎么做
  • 编写网站程序选服务好的网站建设公
  • 福州网站怎么做android应用商店
  • 建设部规范公布网站代理公司帮忙注册公司需要多少钱
  • 那个网站上可以找代加工的订单做php网站开发 学习计划
  • 做网站美工工资多少钱天津艺匠做网站怎么样
  • 贵州一帆建设工程有限公司网站石家庄飞数科技
  • 互联网网站开发发展沧州网站建设熊掌号
  • 乔拓云智能建站cloud域名注册网站
  • 凡科建站app深圳网站设计公司哪家工艺好