自分でやって、おいしい食べ物や衣服を楽しみましょう

WBOY
リリース: 2016-06-13 12:11:39
オリジナル
879 人が閲覧しました

自分でやって、十分な食料と衣服を用意してください。

Grunt は最近非常に人気がありますが、使用するのは楽しいですが、その構成は非常に面倒です。これまでに使用したことがなく、すぐに使いこなしたい場合は、一定の学習コストがかかり、また、プロジェクトの開始時に、パッケージ化用に軽量ツールの Compiler.jar を選択しました。 。ワンクリックパッケージングツールをどうやって書くかを考えています。以前は、いくつかの js ファイルを、compiler.jar パッケージ ファイルの要件を満たすバッチ ファイルに手動で結合し、このバッチを実行して必要な js および css ファイルを生成していました。 js ファイルの数が増えると、これらのファイルのアドレスを手動で結合することが非常に困難になり、特定のファイルが欠落したり重複したりすることも容易になるため、「ワンクリック パッケージ ツール」の作成が急務になります。以下は実際のindex.html ファイルの一部です:

<span style="font-family: 'Microsoft YaHei';"><span style="color: #0000ff;"><!</span><span style="color: #ff00ff;">DOCTYPE html</span><span style="color: #0000ff;">></span><span style="color: #0000ff;"><</span><span style="color: #800000;">html</span><span style="color: #0000ff;">></span><span style="color: #0000ff;"><</span><span style="color: #800000;">head</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">meta </span><span style="color: #ff0000;">charset</span><span style="color: #0000ff;">="utf-8"</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">meta </span><span style="color: #ff0000;">http-equiv</span><span style="color: #0000ff;">="X-UA-Compatible"</span><span style="color: #ff0000;"> content</span><span style="color: #0000ff;">="IE=edge,chrome=1"</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">meta </span><span style="color: #ff0000;">name</span><span style="color: #0000ff;">="viewport"</span><span style="color: #ff0000;"> content</span><span style="color: #0000ff;">="target-densitydpi=device-dpi, initial-scale=1, user-scalable=0, maximum-scale=1"</span><span style="color: #0000ff;">></span>     <span style="color: #008000;"><!--</span><span style="color: #008000;">隐藏浏览器的工具栏和菜单栏,对iso系统起用</span><span style="color: #008000;">--></span>    <span style="color: #008000;"><!--用于<strong>PC上</strong>调式,不参与合并压缩</span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/data/database.js"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="noBuild"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;">Iframe加载处理</span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/LoadMode.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/jQuery.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/underscore.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/SVGIcons/snap.min.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/pixi.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/Xut.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/isMobile.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/aaronRequire.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/nextTick.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/Config.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/lang/Object.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/lang/Function.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/lang/Array.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/video.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 自定义事件,合集处理,iframe通讯 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/event/asEvented.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/core/message/pms.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;">插件</span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/cordova.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/readAssetsFilePlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/initDatabase.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/web.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/video.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/openAppPlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/tabletPlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/statusbar.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/iap.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/AppStoreLink.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/downloadPlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/xxteManager.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/unzipPlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/readPlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/plugin/deletePlugin.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 动画库 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/TweenMax.min.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/plugins/ThrowPropsPlugin.min.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/PptAnimation.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/CanvasAnimation.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/dragdrop/Draggable.min.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/dragdrop/dragdrop.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/iscroll.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/hammer.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/SVGIcons/svgicons-config.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/SVGIcons/svgicons.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/animate/SpriteA.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/Utils.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/LocalStorage.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/ScriptLoad.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/ExecuteSql.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/PromptNotice.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/util/edge.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 配置文件,数据文件,结构文件 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/data/Store.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/data/StoreManager.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 数据初始化 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/Main.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/Initialize.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scenario/SceneLayout.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scenario/SceneFactory.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scenario/SceneController.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/LoadScene.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/Dispatcher.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 工具栏 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/toolbar/Navbar.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/toolbar/sToolbar.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/toolbar/fToolbar.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/toolbar/searchBar.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/toolbar/bookMark.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 多线程任务片 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/threadTask/Buffer.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/threadTask/TaskContents.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/threadTask/TaskComponents.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/threadTask/TaskBackground.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/threadTask/TaskContainer.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/Parser.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/Collection.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/MultiEvent.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/PageBase.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/Page.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/pageBase/Master.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 页面管理模块 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/transform/Translation.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/OverrideApi.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/Abstract.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/Emitter.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/PageMgr.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/MasterMgr.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/Compiler.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/ViewModel.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/SwitchPage.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/controller/EventDrive.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;">热点管理</span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/AssignAutoRun.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/AssignTrigger.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/AssignSuspend.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/AssignOriginal.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/AssignRecovery.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/ProcessControl.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/scheduler/Binding.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;"> 适配器,用于处理热点 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/directives/dir-Content.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/directives/dir-Widget.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/directives/dir-Media.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/directives/dir-Action.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/directives/dir-ShowNote.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>     <span style="color: #008000;"><!--</span><span style="color: #008000;">多媒体对象 </span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/media/Audio.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/media/Video.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/media/AudioManager.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/media/VideoManager.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #008000;"><!--</span><span style="color: #008000;">文本热点</span><span style="color: #008000;">--></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/content/conFilter.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span>    <span style="color: #0000ff;"><</span><span style="color: #800000;">script </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="lib/component/content/conAlgorithm.js"</span><span style="color: #0000ff;">></</span><span style="color: #800000;">script</span><span style="color: #0000ff;">></span><br></span>
ログイン後にコピー

生きている人を窒息死させることはできない、長くてバグの多いものがあります。常に問題よりも解決策の方が多い。 PHP がファイル処理に優れていることは少しだけ知っています。PHP に役割を果たしてもらいましょう。そこで、PHP を使用してインデックス内の js と css を自動的に抽出し、指定された形式でバッチ ファイルを生成し、そのバッチ ファイルをバックグラウンドでサイレント実行し、最後に結果をモニターに返すことを考えました。こうすることで、落ち着いて結果を楽しむことができます。考えるとちょっとワクワクするので、シンプルにインターフェイスを書きました。

続き。次のステップは、関数を実装することです。最初にコードを急いで作成せず、要件を分析します。

1.index.html ファイルを調べて、js ファイルまたは css を抽出します。 file.

2. 一部はコメントアウトされており、一部はデバッグに使用されるため、このファイルをフィルターします。

3. 対応するバッチ ファイルを生成します

4. バッチ ファイルを実行します

5. . 処理結果の表示

2つの状況があるため、将来的に他の型の拡張を容易にするためにファクトリーモードを使用し、長期的な視点で検討します。ファクトリができたので、あとは別のインターフェイスを追加するだけです。「リクエストの受信」と「結果の出力」の 2 つのインターフェイスを実装する必要があることに同意します。もう一度考えてみましょう。js と css はどちらも同じ機能を持っている可能性があるため、コードを再利用するために親クラスを継承させます。そのため、継承も最初に使用されます。現在の設計は要件を満たしているはずなので、

次に呼び出し処理を記述します。
<?<span style="color: #000000;">php</span><span style="color: #008080;">header</span>("Content-type: text/html; charset=utf-8"<span style="color: #000000;">);</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 根据index.html文件中引用的js,生成compressJs.bat * @author frog <[email&#160;protected]> * @date 2014-11-17 <span style="color: #008000;">*/</span><span style="color: #0000ff;">interface</span><span style="color: #000000;"> ICompress {    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 处理用户请求     * @return [type] [description]     </span><span style="color: #008000;">*/</span>    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> request();    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 处理输出结果     * @return [type] [description]     </span><span style="color: #008000;">*/</span>    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> render();}</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> BaseCompress {    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$content</span><span style="color: #000000;">;    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$outPath</span><span style="color: #000000;">;    </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$isAuto</span><span style="color: #000000;">;    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$isAuto</span>=<span style="color: #0000ff;">false</span><span style="color: #000000;">){        </span><span style="color: #800080;">$outPath</span> = '_file'<span style="color: #000000;">;        </span><span style="color: #0000ff;">if</span>(!<span style="color: #008080;">is_dir</span>(<span style="color: #800080;">$outPath</span><span style="color: #000000;">)){            </span><span style="color: #008080;">mkdir</span>(<span style="color: #800080;">$outPath</span><span style="color: #000000;">);        }        </span><span style="color: #800080;">$this</span>->outPath = <span style="color: #800080;">$outPath</span><span style="color: #000000;">;        </span><span style="color: #800080;">$this</span>->isAuto = <span style="color: #800080;">$isAuto</span><span style="color: #000000;">;    }    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 运行批处理     * @return [type] [description]     </span><span style="color: #008000;">*/</span>    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> runBat(<span style="color: #800080;">$name</span><span style="color: #000000;">){    }}</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 压缩javascript文件 * 合并javascript文件 </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">class</span> CompressJS <span style="color: #0000ff;">extends</span> BaseCompress <span style="color: #0000ff;">implements</span><span style="color: #000000;"> ICompress {    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 处理用户请求     * @return [type] [description]     </span><span style="color: #008000;">*/</span>    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> request(){    }    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 处理输出结果     * @return [type] [description]     </span><span style="color: #008000;">*/</span>        <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> render(){}}</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 压缩样式文件 </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">class</span> CompressCSS <span style="color: #0000ff;">extends</span> BaseCompress <span style="color: #0000ff;">implements</span><span style="color: #000000;"> ICompress {    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> request(){     }    </span><span style="color: #008000;">/*</span><span style="color: #008000;">*     * 处理输出结果     * @return [type] [description]     </span><span style="color: #008000;">*/</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> render(){}     }</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 工厂类 </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Factory {    </span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> create(<span style="color: #800080;">$type</span>,<span style="color: #800080;">$isAuto</span><span style="color: #000000;">){        </span><span style="color: #800080;">$ob</span> = <span style="color: #0000ff;">null</span><span style="color: #000000;">;        </span><span style="color: #0000ff;">switch</span> (<span style="color: #800080;">$type</span><span style="color: #000000;">) {            </span><span style="color: #0000ff;">case</span> 'js':                <span style="color: #800080;">$ob</span> = <span style="color: #0000ff;">new</span> CompressJS(<span style="color: #800080;">$isAuto</span><span style="color: #000000;">);                </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;            </span><span style="color: #0000ff;">case</span> 'css':                <span style="color: #800080;">$ob</span> = <span style="color: #0000ff;">new</span> CompressCSS(<span style="color: #800080;">$isAuto</span><span style="color: #000000;">);                </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;            </span><span style="color: #0000ff;">default</span>:                <span style="color: #008000;">#</span><span style="color: #008000;"> code...</span>                <span style="color: #0000ff;">break</span><span style="color: #000000;">;        }        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$ob</span><span style="color: #000000;">;    }}</span>
ログイン後にコピー

大まかな骨格が出てきます。具体的なコーディングプロセスは比較的単純です。少し難しい方法は、バッチ処理を実行することです。
<span style="color: #008000;">//</span><span style="color: #008000;">处理ajax请求</span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_POST</span>['submit'<span style="color: #000000;">])){    </span><span style="color: #008000;">//</span><span style="color: #008000;">是否自动执行批处理</span>    <span style="color: #800080;">$isAuto</span> = <span style="color: #800080;">$_POST</span>['zip'] === 'true' ? <span style="color: #0000ff;">true</span> : <span style="color: #0000ff;">false</span><span style="color: #000000;">;    </span><span style="color: #008000;">//</span><span style="color: #008000;">处理类型</span>    <span style="color: #800080;">$type</span> = <span style="color: #800080;">$_POST</span>['type'<span style="color: #000000;">];    </span><span style="color: #800080;">$c</span> = Factory::create(<span style="color: #800080;">$type</span>,<span style="color: #800080;">$isAuto</span><span style="color: #000000;">);<br>    //接口方法    </span><span style="color: #800080;">$c</span>-><span style="color: #000000;">request();    </span><span style="color: #800080;">$c</span>-><span style="color: #000000;">render();}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{    </span><span style="color: #0000ff;">echo</span> '请使用静态页访问本程序:<a href="index.html">点此进入</a>'<span style="color: #000000;">;}</span>
ログイン後にコピー
はオンラインで提供されており、将来使用される可能性があります。

。以前のindex.htmlには、人為的に追加したname="noBuild"があります。これは、今後他のファイルをフィルタリングしたい場合に、この方法でjsファイルをフィルタリングしたいためです。このロゴを追加する必要はありません。PHP コードを変更する必要はありません。内部使用のため、プロジェクトのパスを指定するフォーム項目はありません。デフォルトでは、index.html が配置されている上位ディレクトリがプロジェクト ディレクトリになります。この設計により操作が簡素化され、効率が向上します。
<span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> runBat(<span style="color: #800080;">$name</span><span style="color: #000000;">){        </span><span style="color: #0000ff;">if</span>(!<span style="color: #008080;">file_exists</span>(<span style="color: #800080;">$name</span>) || !<span style="color: #800080;">$this</span>-><span style="color: #000000;">isAuto){            </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;        }        </span><span style="color: #008000;">//</span><span style="color: #008000;">转入后台处理</span>        @<span style="color: #008080;">exec</span>(<span style="color: #008080;">pclose</span>(<span style="color: #008080;">popen</span>("start /B ". <span style="color: #008080;">escapeshellcmd</span>(<span style="color: #800080;">$name</span>), "r"<span style="color: #000000;">)));    }</span>
ログイン後にコピー
特定のファイルの走査に関しては、非常に簡単な解決策である glob 関数をお勧めします:

以下はプロジェクトのディレクトリ構造図です:
<span style="color: #800080;">$files</span> = <span style="color: #008080;">glob</span>(<span style="color: #800080;">$path</span>.'/*.css',GLOB_NOSORT);
ログイン後にコピー

別のオペレーションレンダリング:

最終的な処理結果:

ついに、Grunt 設定を書いてノードをインストールする必要がなくなり、更新時に svn から大量のノードを取得することを心配する必要がなくなりました。

フロントエンドのコードを表示するのを忘れたようです:

<span style="color: #008000;">/*</span><span style="color: #008000;">* * 选项卡类 * @param {string} id 选项卡的ID </span><span style="color: #008000;">*/</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> Tabs(id){    </span><span style="color: #0000ff;">var</span> node = document.querySelector('#'+<span style="color: #000000;">id);    </span><span style="color: #0000ff;">var</span> selected = node.querySelector('.selected'<span style="color: #000000;">);    </span><span style="color: #0000ff;">this</span>.selected =<span style="color: #000000;"> selected;    </span><span style="color: #0000ff;">this</span>.node =<span style="color: #000000;"> node;    </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.bindEvent();}</span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 切换选项卡 * @param  {object} event 事件 * @return {[type]}   [description] </span><span style="color: #008000;">*/</span><span style="color: #000000;">Tabs.prototype.change </span>= <span style="color: #0000ff;">function</span><span style="color: #000000;">(event){    </span><span style="color: #0000ff;">var</span> element =<span style="color: #000000;"> event.target;    </span><span style="color: #0000ff;">if</span>(element.tagName.toLowerCase()=='li'<span style="color: #000000;">){        </span><span style="color: #0000ff;">if</span>(element.className=='selected'<span style="color: #000000;">){            </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;        }    }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{        </span><span style="color: #0000ff;">while</span>(element != <span style="color: #0000ff;">this</span><span style="color: #000000;">.node){            element </span>=<span style="color: #000000;"> element.parentNode;            </span><span style="color: #0000ff;">if</span>(element.tagName.toLowerCase()=='li'<span style="color: #000000;">){                </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;            }        }        </span><span style="color: #0000ff;">if</span>(element == <span style="color: #0000ff;">this</span>.node) <span style="color: #0000ff;">return</span><span style="color: #000000;">;    }    </span><span style="color: #0000ff;">this</span>.selected.removeAttribute('class'<span style="color: #000000;">);    element.className </span>= 'selected'<span style="color: #000000;">;    </span><span style="color: #0000ff;">this</span>.selected =<span style="color: #000000;"> element;    </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.content();}Tabs.prototype.content </span>= <span style="color: #0000ff;">function</span><span style="color: #000000;">(){  </span><span style="color: #0000ff;">var</span> form =<span style="color: #000000;"> document.form1;    </span><span style="color: #0000ff;">switch</span>(<span style="color: #0000ff;">this</span><span style="color: #000000;">.getTabType()){      </span><span style="color: #0000ff;">case</span> 'js'<span style="color: #000000;">:        form.style.display </span>= 'block'<span style="color: #000000;">;        form.children[</span>0].innerHTML = '自动压缩JS'<span style="color: #000000;">;        </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;      </span><span style="color: #0000ff;">case</span> 'css'<span style="color: #000000;">:        form.style.display </span>= 'block'<span style="color: #000000;">;        form.children[</span>0].innerHTML = '自动压缩CSS'<span style="color: #000000;">;        </span><span style="color: #0000ff;">break</span><span style="color: #000000;">;      </span><span style="color: #0000ff;">default</span><span style="color: #000000;">:    }}</span>
ログイン後にコピー
私はフロントエンドを知っており、バックエンド、とても気まぐれです。ワンクリックで心配に別れを告げましょう!自分のツールを作成して、他の人に大変な作業を任せてください。とても簡単です!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート