<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        用npm-run實現自動化任務的方法示例

        來源:懂視網 責編:小采 時間:2020-11-27 22:02:04
        文檔

        用npm-run實現自動化任務的方法示例

        用npm-run實現自動化任務的方法示例:自動構建javascript有不少好工具。不過其實很少有人知道,npm run命令就能很好地完成這一任務,配置起來也很簡單。 James Halliday在博客上分享了使用npm run自動化任務的一些經驗: script npm 會在項目的 package.json 文件中尋找 scri
        推薦度:
        導讀用npm-run實現自動化任務的方法示例:自動構建javascript有不少好工具。不過其實很少有人知道,npm run命令就能很好地完成這一任務,配置起來也很簡單。 James Halliday在博客上分享了使用npm run自動化任務的一些經驗: script npm 會在項目的 package.json 文件中尋找 scri

        自動構建javascript有不少好工具。不過其實很少有人知道,npm run命令就能很好地完成這一任務,配置起來也很簡單。

        James Halliday在博客上分享了使用npm run自動化任務的一些經驗:

        script

        npm 會在項目的 package.json 文件中尋找 scripts 區域,其中包括npm testnpm start等命令。

        其實npm testnpm startnpm run testnpm run start的簡寫。事實上,你可以使用npm run來運行scripts里的任何條目。

        使用npm run的方便之處在于,npm會自動把node_modules/.bin加入$PATH,這樣你可以直接運行依賴程序和開發依賴程序,不用全局安裝了。只要npm上的包提供命令行接口,你就可以直接使用它們,方便吧?當然,你總是可以自己寫一個簡單的小程序。

        構建javascript

        為了便于組織代碼和利用npm上的包,寫代碼的時候往往使用module.exportsrequire()。browserify可以將這些一起打包成單一的腳本。使用browserify很簡單,只需在package.json中加入一個['build-js']條目,類似這樣:

        "build-js": "browserify browser/main.js > static/bundle.js"

        如果是用于生產環境,還需要壓縮一下。我們只需要將uglify-js加入devDependency,然后直接通過管道傳遞一下即可:

        "build-js": "browserify browser/main.js | uglifyjs -mc > static/bundle.js"

        監視 javascript

        為了能在修改文件之后自動重新生成javascript文件,只需將上面的browserify命令換成watchify并加上一些參數。

        "watch-js": "watchify browser/main.js -o static/bundle.js -dv"

        這里加了-d-v兩個參數,這樣就可以看到詳細的調試信息。

        構建CSS

        cat就可以搞定:

        "build-css": "cat static/pages/*.css tabs/*/*.css > static/bundle.css"

        監視CSS

        和上面用 watchify 監視 javascript 類似,我們用catw監視CSS文件的改動:

        "watch-css": "catw static/pages/*.css tabs/*/*.css -o static/bundle.css -v"

        序列化子任務

        很簡單,npm run每個子任務,然后用&&連接起來就成。

        "build": "npm run build-js && npm run build-css"

        并行子任務

        類似地,我們用&并行子任務:

        "watch": "npm run watch-js & npm run watch-css"

        完整的package.json例子

        將上面提到的內容組合起來,package.json大致就是這個樣子:

        {
         "name": "my-silly-app",
         "version": "1.2.3",
         "private": true,
         "dependencies": {
         "browserify": "~2.35.2",
         "uglifyjs": "~2.3.6"
         },
         "devDependencies": {
         "watchify": "~0.1.0",
         "catw": "~0.0.1",
         "tap": "~0.4.4"
         },
         "scripts": {
         "build-js": "browserify browser/main.js | uglifyjs -mc > static/bundle.js",
         "build-css": "cat static/pages/*.css tabs/*/*.css",
         "build": "npm run build-js && npm run build-css",
         "watch-js": "watchify browser/main.js -o static/bundle.js -dv",
         "watch-css": "catw static/pages/*.css tabs/*/*.css -o static/bundle.css -v",
         "watch": "npm run watch-js & npm run watch-css",
         "start": "node server.js",
         "test": "tap test/*.js"
         }
        }

        生產環境下,只需運行npm run build。如果是本地開發,就用npm run watch

        你也可以坐下擴展。比方說,如果你希望在運行start前先運行build,那么你只需寫上這么一行:

        "start": "npm run build && node server.js"

        也許你想同時啟動watcher?

        "start-dev": "npm run watch & npm start"

        當事情變得非常復雜的時候

        如果你發現在單個scripts條目中塞了一大堆命令,那你可以考慮重構一下,把一些命令放到別的地方,比如/bin

        你可以用任何語言編寫這個腳本,比如bashnodeperl。只需要在腳本上加上合適的#!行。還有,別忘了chmod +x

        #!/bin/bash
        (cd site/main; browserify browser/main.js | uglifyjs -mc > static/bundle.js)
        (cd site/xyz; browserify browser.js > static/bundle.js)
        "build-js": "bin/build.sh"

        Windows

        你可能會吃驚的是,相當多的類bash語法可以在Windows上工作。不過我們至少還需要讓;&可以正常工作。

        James Halliday分享過一些在Windows兼容的經驗,這些經驗也適用于本文的主題,可以參考。此外要推薦下win-bash,這是一個很方便的Windows平臺上的bash實現。

        總結

        James Halliday希望這個使用npm run的方式能吸引一部人對現有的前端自動化任務工具不滿意的人。James Halliday比較偏好unix體系下的那些學習曲線陡峭的工具,比如git,或者類似 npm 這種在 bash 的基礎上提供極簡界面的工具。也就是說,不需要很多儀式化操作和配合的工具。非常簡單的工具,已經足夠勝任通常的任務。

        如果你對npm run風格不感冒。你也許可以考慮下Makefiles,一個穩定而簡單,不過多少有點怪異的替代品。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        用npm-run實現自動化任務的方法示例

        用npm-run實現自動化任務的方法示例:自動構建javascript有不少好工具。不過其實很少有人知道,npm run命令就能很好地完成這一任務,配置起來也很簡單。 James Halliday在博客上分享了使用npm run自動化任務的一些經驗: script npm 會在項目的 package.json 文件中尋找 scri
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 免费精品国产日韩热久久| 99久热只有精品视频免费观看17| 亚洲男人第一无码aⅴ网站| 亚洲综合色在线观看亚洲| 国产亚洲综合视频| 亚洲第一黄色网址| 亚洲天堂福利视频| 免费无码AV电影在线观看| 亚洲熟妇无码AV| 国产免费人成在线视频| 一区二区三区免费视频网站| 亚洲人成色7777在线观看| 你懂的免费在线观看网站| 亚洲精彩视频在线观看| 午夜宅男在线永久免费观看网| 久久综合久久综合亚洲| 免费日本一区二区| 亚洲五月六月丁香激情| 成人毛片免费在线观看| 黄色a级片免费看| 国产精品亚洲A∨天堂不卡 | 久久免费99精品国产自在现线| 亚洲愉拍99热成人精品热久久| 日本亚洲欧洲免费天堂午夜看片女人员 | 免费又黄又爽又猛大片午夜| 亚洲中文字幕不卡无码| 在线人成精品免费视频| 国产亚洲成归v人片在线观看| 一个人免费视频观看在线www| 久久av无码专区亚洲av桃花岛| 无码一区二区三区免费视频| 青青草97国产精品免费观看| 亚洲AV综合色区无码一区爱AV| 免费无码A片一区二三区| eeuss影院www天堂免费| 亚洲国产成人久久综合野外| 国产免费一区二区三区在线观看| 亚洲欧洲精品一区二区三区| 日本免费v片一二三区| 在线观看免费无码视频| 亚洲欧洲日韩极速播放|