国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

npm-scripts 在 windows 下的兼容問(wèn)題

Acceml / 2173人閱讀

摘要:今天有開(kāi)發(fā)的同事問(wèn)我說(shuō),在本機(jī)開(kāi)發(fā)的上運(yùn)行構(gòu)建命令報(bào)錯(cuò),不知道怎么回事兒。比如我們直接在命令行下執(zhí)行都是沒(méi)問(wèn)題的,但結(jié)合到上,卻運(yùn)行失敗。

今天有開(kāi)發(fā)的同事問(wèn)我說(shuō),在本機(jī)開(kāi)發(fā)的 windows 上運(yùn)行構(gòu)建命令報(bào)錯(cuò),不知道怎么回事兒。
作為一名 Mac 用戶,當(dāng)然也不知道為什么啦,過(guò)去看看,果然有錯(cuò)誤。

我們的開(kāi)發(fā)構(gòu)建命令是基于 npmscripts,其實(shí)就是很簡(jiǎn)單的一句話:

{
  "scripts": {
    ...
    "build": "NODE_ENV=production webpack --progress --hide-modules"
  },
  ...
}

這個(gè)命令在 Mac 下沒(méi)有問(wèn)題,在 windows 下運(yùn)行卻報(bào)如下錯(cuò)誤:

0 info it worked if it ends with ok
1 verbose cli [ "C:Program Files
odejs
ode.exe",
1 verbose cli   "C:Program Files
odejs
ode_modules
pmin
pm-cli.js",
1 verbose cli   "run",
1 verbose cli   "build" ]
2 info using npm@3.10.8
3 info using node@v6.9.1
4 verbose run-script [ "prebuild", "build", "postbuild" ]
5 info lifecycle @~prebuild: @
6 silly lifecycle @~prebuild: no script for prebuild, continuing
7 info lifecycle @~build: @
8 verbose lifecycle @~build: unsafe-perm in lifecycle true
9 verbose lifecycle @~build: PATH: C:Program Files
odejs
ode_modules
pmin
ode-gyp-bin;
ode_modules.bin;C:Usersin;F:Gitmingw64in;F:Gitusrlocalin;F:Gitusrin;F:Gitusrin;F:Gitmingw64in;F:Gitusrin;C:Usersin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)NVIDIA CorporationPhysXCommon;C:Program Files
odejs;C:Goin;C:UsersAppDataLocalMicrosoftWindowsApps;C:UsersAppDataRoaming
pm;F:Gitusrinvendor_perl;F:Gitusrincore_perl
10 verbose lifecycle @~build: CWD: 
11 silly lifecycle @~build: Args: [ "/d /s /c",
11 silly lifecycle   "NODE_ENV=production webpack --progress --hide-modules" ]
12 silly lifecycle @~build: Returned: code: 1  signal: null
13 info lifecycle @~build: Failed to exec build script
14 verbose stack Error: @ build: `NODE_ENV=production webpack --progress --hide-modules`
14 verbose stack Exit status 1
14 verbose stack     at EventEmitter. (C:Program Files
odejs
ode_modules
pmlibutilslifecycle.js:255:16)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at EventEmitter.emit (events.js:191:7)
14 verbose stack     at ChildProcess. (C:Program Files
odejs
ode_modules
pmlibutilsspawn.js:40:14)
14 verbose stack     at emitTwo (events.js:106:13)
14 verbose stack     at ChildProcess.emit (events.js:191:7)
14 verbose stack     at maybeClose (internal/child_process.js:877:16)
14 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
15 verbose pkgid @
16 verbose cwd 
17 error Windows_NT 10.0.14393
18 error argv "C:Program Files
odejs
ode.exe" "C:Program Files
odejs
ode_modules
pmin
pm-cli.js" "run" "build"
19 error node v6.9.1
20 error npm  v3.10.8
21 error code ELIFECYCLE
22 error @ build: `NODE_ENV=production webpack --progress --hide-modules`
22 error Exit status 1
23 error Failed at the @ build script "NODE_ENV=production webpack --progress --hide-modules".
23 error Make sure you have the latest version of node.js and npm installed.
23 error If you do, this is most likely a problem with the  package,
23 error not with npm itself.
23 error Tell the author that this fails on your system:
23 error     NODE_ENV=production webpack --progress --hide-modules
23 error You can get information on how to open an issue for this project with:
23 error     npm bugs
23 error Or if that isn"t available, you can get their info via:
23 error     npm owner ls
23 error There is likely additional logging output above.
24 verbose exit [ 1, true ]

調(diào)試了一下,問(wèn)題就出在這個(gè)命令本身。

這位同學(xué)開(kāi)發(fā)用的是 git-shell 自帶的命令行,本身是支持 linux 命令執(zhí)行的。
比如我們直接在命令行下執(zhí)行:

NODE_ENV=production
export NODE_ENV=production

都是沒(méi)問(wèn)題的,但結(jié)合到 npm scripts 上,卻運(yùn)行失敗。
當(dāng)我們?nèi)サ暨@個(gè) env 設(shè)定,再次執(zhí)行 npm scripts 命令:

{
  "scripts": {
    ...
    "build": "webpack --progress --hide-modules"
  },
  ...
}

就會(huì)發(fā)現(xiàn)沒(méi)問(wèn)題了,但結(jié)果當(dāng)然是不是我們想要的。

怎么辦?

可以把要執(zhí)行的代碼寫(xiě)到獨(dú)立的 JS 中,使用 node 命令來(lái)運(yùn)行,比如:

{
  "scripts": {
    ...
    "build": "node build/build.js"
  },
  ...
}

build/build.js 文件中,再設(shè)定執(zhí)行環(huán)境之類的:

var ora = require("ora")
var webpack = require("webpack")
var webpackConfig = require("../webpack.config.js")

process.env.NODE_ENV = "production"

var spinner = ora("building for production...")
spinner.start()

webpack(webpackConfig, function (err, stats) {
  spinner.stop()
  if (err) throw err
  process.stdout.write(stats.toString({
    colors: true,
    modules: false,
    children: false,
    chunks: false,
    chunkModules: false
  }) + "
")
})

這其實(shí)也是 vue 腳手架自動(dòng)生成的構(gòu)建方式,果然還是最佳實(shí)踐靠譜一點(diǎn)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91269.html

相關(guān)文章

  • webpack多頁(yè)應(yīng)用架構(gòu)系列(十四):No復(fù)制粘貼!多項(xiàng)目共用基礎(chǔ)設(shè)施

    摘要:原文地址如果您對(duì)本系列文章感興趣,歡迎關(guān)注訂閱這里前言本文介紹如何在多項(xiàng)目間共用同一套基礎(chǔ)設(shè)施,又或是某種層次的框架。而以上所述的種種,就構(gòu)成了一套完整的解決方案,也稱基礎(chǔ)設(shè)施。下面就以從到的改造過(guò)程來(lái)介紹如何實(shí)現(xiàn)多項(xiàng)目共用基礎(chǔ)設(shè)施。 本文首發(fā)于Array_Huang的技術(shù)博客——實(shí)用至上,非經(jīng)作者同意,請(qǐng)勿轉(zhuǎn)載。原文地址:https://segmentfault.com/a/1190...

    cyrils 評(píng)論0 收藏0
  • 使用npm-scripts發(fā)布Github Pages

    摘要:使用發(fā)布將項(xiàng)目打包后部署到上是常見(jiàn)需求。需要使用到的庫(kù)。關(guān)于的知識(shí),參考使用指南用打造超溜的前端工作流需付費(fèi)修改此時(shí),雖然可以發(fā)布,但所有相關(guān)的靜態(tài)文件的目錄都是指向的,而實(shí)際的靜態(tài)文件的位置是在中。 使用npm-scripts發(fā)布Github Pages 將項(xiàng)目打包后部署到GitHub Pages 上是常見(jiàn)需求。這里總結(jié)下通過(guò)npm-srcrips將項(xiàng)目發(fā)布到gh-pages分支。需...

    cloud 評(píng)論0 收藏0
  • nps-cli 讓你命令行即可方便的查看、設(shè)置和刪除 npm-scripts 命令

    摘要:提供非常方便的功能,讓我們?cè)诿钚屑纯蓤?zhí)行如等預(yù)定義的命令。所以我開(kāi)源了庫(kù),讓你在命令行即可方便的管理,通過(guò)即可安裝提供個(gè)命令列出當(dāng)前的命令在中設(shè)置一個(gè)命令刪除中對(duì)應(yīng)的命令 npm 提供非常方便的 npm-scripts 功能,讓我們?cè)诿钚屑纯蓤?zhí)行如 npm start 等預(yù)定義的命令。但是定義命令卻稍顯麻煩,需要打開(kāi) package.json 文件,找到 scripts 字段,增加...

    trilever 評(píng)論0 收藏0
  • 一個(gè)命令完成[打包+同步七牛cdn+上傳服務(wù)器]

    摘要:實(shí)現(xiàn)一個(gè)命令完成打包同步上傳服務(wù)器說(shuō)明由于我們用的七牛云存儲(chǔ),所以也是走的七牛,所以并不適用于其他的,但是思路可以借鑒打包打包目前我這邊用的是,網(wǎng)上已經(jīng)有很多文章了,這里就不作過(guò)多闡述了,只是說(shuō)一下這個(gè)參數(shù),如果要做同步肯定是要配置這個(gè)參 webpack+gulp+qshell+npm-scripts實(shí)現(xiàn)一個(gè)命令完成[打包+同步cdn+上傳服務(wù)器] 說(shuō)明 由于我們用的七牛云存儲(chǔ),所以c...

    張春雷 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<