美文网首页
在构建时我们为何会忽略掉npm

在构建时我们为何会忽略掉npm

作者: 从此以后dapeng | 来源:发表于2016-11-22 17:18 被阅读57次

在构建时我们为何会忽略掉npm?

  1. 人们认为npm scripts需要强大的命令行技巧
  2. 人们认为npm scripts不够强大
  3. 人们认为Gulp的流对于快速构建来说是不可或缺的
  4. 人们认为npm scripts无法实现跨平台运行

误解1:使用npm scripts需要强大的命令行技巧

npm scripts的强大功能其实并不需要对操作系统的命令行了解太多。当然了,grep、sed、awk与管道等是值得你去学习的,令你众生受用的技能;

误解2:npm scripts不够强大

npm scripts本身其实是非常强大的。它提供了基于约定的pre与post钩子:

{
    name: "npm-scripts-example",
    version: "1.0.0",
    description: "npm scripts example",
    scripts: {
        prebuild: "echo I run before the build script",
        build: "cross-env NODE_ENV=production webpack",
        postbuild: "echo I run after the build script"
    }
}

此外,还可以通过在一个脚本中调用另一个脚本来对大的问题进行分解,还可以通过&&在一行连续调用多个脚本。

  "name": "npm-scripts-example",
  "version": "1.0.0",
  "description": "npm scripts example",
  "scripts": {
    "clean": "rimraf ./dist && mkdir dist",
    "prebuild": "npm run clean",
    "build": "cross-env NODE_ENV=production webpack"
  }
}```
如果一个命令很复杂,那还可以调用一个单独的文件
```{
  "name": "npm-scripts-example",
  "version": "1.0.0",
  "description": "npm scripts example",
  "scripts": {
    "build": "node build.js"
  }
}```

# 误解3:Gulp的流对于快速构建来说是不可或缺的
事实上,流早就已经被内建到Unix与Windows命令行中了。管道(|)运算符会将一个命令的输出以流的方式作为另一个命令的输入。重定向(>)运算符则会将输出重定向到文件。在Unix中,还可以通过“&”运算符同时运行两个命令。
grep ‘Cory House’ bigFile.txt > linesThatHaveMyName.txt
npm run script1.js & npm run script2.js

# 误解4:npm scripts无法实现跨平台运行
很多项目都会绑定到特定的操作系统上,因此跨平台是一件并不那么重要的事情。不过,如果需要以跨平台的方式运行,那么npm scripts依然可以工作得很好。
如果希望构建脚本能够运行在所有平台上,你需要适配Unix与Windows。
    
**方式1:使用跨平台的命令**
&& 链式任务(一个任务接着一个任务运行)
< 将文件内容输入到一个命令
>  将命令输出重定向到文件
| 将一个命令的输出重定向到另一个命令
**2. 方式2:使用node包**
可以使用node包来代替shell命令。比如说,使用rimraf来代替“rm -rf`”。使用cross-env以跨平台的方式设置环境变量。

**3. 方式3:使用ShellJS**

相关文章

  • 在构建时我们为何会忽略掉npm

    在构建时我们为何会忽略掉npm? 人们认为npm scripts需要强大的命令行技巧 人们认为npm script...

  • 解决 import 导入 umd 模块报错的问题

    在写组件库时用vue-cli 3.x的 可以直接构建npm包,npm publish后再通过npm install...

  • thinkphp里面的一些总结

    1,M('x')->where($where)->find();当$where条件字段不存在时,会忽略掉,根据余下...

  • 色彩在摄影中有哪些应用?学摄影的你要知道

    人的眼睛有一定的视觉范围,由于适应能力的关系,我们总是会忽略掉身边的一些色彩变化,不过,在我们进行拍摄时,相机却能...

  • Gson的使用-2

    Gson序列化空值 Gson在序列化的null值的时候,会自动忽略掉该字段,如果我们不想将其忽略,可以作如下设置;...

  • 解决checkPermissions Missing write

    在使用 npm install 命令时,我们可能会遇到因为没有写访问权限,导致安装失败的情况。 npm WARN ...

  • 影评观后感。

    在时间的漏沙里我们往往总归会忽略掉很多,比如当下拥有最简单的幸福.曾偏执的你会以为当你要做一件事情时面对家人的不理...

  • 哪些身材需要引起重视?

    关于肥胖人群影响健康的话题我们聊了很多,但当我们把注意力集中在极端人群的身上时,往往会忽略掉处于“中间”的那一部分...

  • 哪有什么天赋,都是坚持和不断付出

    我们羡慕成功人士的天赋,却往往忽略掉他们的努力。 当我们看到学霸时,会不由赞叹,她遗传了父母的智慧基因,自带学霸天...

  • 习惯

    当我们决定养成一个习惯的时候,的确会很难!往往会因为这样那样的事情忘记掉,忽略掉!就像昨天,就忘记了日更!...

网友评论

      本文标题:在构建时我们为何会忽略掉npm

      本文链接:https://www.haomeiwen.com/subject/gmxmpttx.html