本文翻译自:NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack

I'm trying to summarize my knowledge about the most popular JavaScript package managers, bundlers, and task runners. 我试图总结我对最流行的JavaScript包管理器,捆绑器和任务运行器的了解。 Please correct me if I'm wrong: 如果我错了,请纠正我:

  • npm & bower are package managers. npmbower是程序包管理器。 They just download the dependencies and don't know how to build projects on their own. 他们只是下载依赖项,而不知道如何自行构建项目。 What they know is to call webpack / gulp / grunt after fetching all the dependencies. 他们知道什么是调用webpack / gulp / grunt获取所有的依赖后。
  • bower is like npm , but builds flattened dependencies trees (unlike npm which do it recursively). bower就像npm一样,但是建立了扁平的依赖关系树(不像npm那样递归地执行)。 Meaning npm fetches the dependencies for each dependency (may fetch the same a few times), while bower expects you to manually include sub-dependencies. 意思是npm获取每个依赖关系的依赖关系(可能会获取相同的几次),而bower希望您手动包括子依赖关系。 Sometimes bower and npm are used together for front-end and back-end respectively (since each megabyte might matter on front-end). 有时, bowernpm分别用于前端和后端(因为每个兆字节在前端可能很重要)。
  • grunt and gulp are task runners to automate everything that can be automated (ie compile CSS/Sass, optimize images, make a bundle and minify/transpile it). gruntgulp是使所有可以自动化的工作自动化的任务执行者(即,编译CSS / Sass,优化图像,制作捆绑包以及缩小/翻译它)。
  • grunt vs. gulp (is like maven vs. gradle or configuration vs. code). gruntgulp (就像是mavengradle或配置与代码)。 Grunt is based on configuring separate independent tasks, each task opens/handles/closes file. Grunt基于配置单独的独立任务,每个任务打开/处理/关闭文件。 Gulp requires less amount of code and is based on Node streams, which allows it to build pipe chains (w/o reopening the same file) and makes it faster. Gulp需要较少的代码量,并且基于Node流,这使其可以构建管道链(无需重新打开同一文件)并使其更快。
  • webpack ( webpack-dev-server ) - for me it's a task runner with hot reloading of changes which allows you to forget about all JS/CSS watchers. webpackwebpack-dev-server )-对我来说,这是一个任务执行程序,它具有对更改进行热加载的功能,使您webpack webpack-dev-server所有JS / CSS监视程序。
  • npm / bower + plugins may replace task runners. npm / bower +插件可以代替任务运行器。 Their abilities often intersect so there are different implications if you need to use gulp / grunt over npm + plugins. 它们的能力经常相交,因此如果您需要在npm +插件上使用gulp / grunt ,则会有不同的含义。 But task runners are definitely better for complex tasks (eg "on each build create bundle, transpile from ES6 to ES5, run it at all browsers emulators, make screenshots and deploy to dropbox through ftp"). 但是任务运行者绝对适合复杂任务(例如“在每个构建中创建捆绑包,从ES6移植到ES5,在所有浏览器模拟器上运行它,制作屏幕截图并通过ftp部署到保管箱”)。
  • browserify allows packaging node modules for browsers. browserify允许打包浏览器的节点模块。 browserify vs node 's require is actually AMD vs CommonJS . browserify vs noderequire实际上是AMD vs CommonJS 。

Questions: 问题:

  1. What is webpack & webpack-dev-server ? 什么是webpackwebpack-dev-server Official documentation says it's a module bundler but for me it's just a task runner. 官方文档说这是一个模块捆绑器,但对我来说只是一个任务运行器。 What's the difference? 有什么不同?
  2. Where would you use browserify ? 您将在哪里使用browserify Can't we do the same with node/ES6 imports? 我们不能对node / ES6导入做同样的事情吗?
  3. When would you use gulp / grunt over npm + plugins? 您何时会在npm +插件上使用gulp / grunt
  4. Please provide examples when you need to use a combination 当您需要组合使用时,请提供示例

#1楼

参考:https://stackoom.com/question/2N7Rs/NPM-Bower-Browserify-Gulp-Grunt-Webpack


#2楼

Webpack and Browserify Webpack和Browserify

Webpack and Browserify do pretty much the same job, which is processing your code to be used in a target environment (mainly browser, though you can target other environments like Node). Webpack和Browserify几乎完成了相同的工作,即处理要在目标环境 (主要是浏览器,尽管您可以将Node等其他环境作为目标)中使用的代码。 Result of such processing is one or more bundles - assembled scripts suitable for targeted environment. 这种处理的结果是一个或多个捆绑包 -适用于目标环境的组合脚本。

For example, let's say you wrote an ES6 code divided into modules and want be able to run it in browser. 例如,假设您编写了一个分为模块的ES6代码,并希望能够在浏览器中运行它。 If those modules are Node modules, browser won't understand them since they exist only in Node environment. 如果这些模块是Node模块,则浏览器将无法理解它们,因为它们仅存在于Node环境中。 ES6 modules also won't work in older browsers like IE11. ES6模块也无法在IE11等较旧的浏览器中运行。 Moreover you might have used experimental language features (ES next proposals) that browsers don't implement yet so running such script would just throw errors. 此外,您可能使用了浏览器尚未实现的实验语言功能(ES的下一个建议),因此运行此类脚本只会引发错误。 Those tools like Webpack and Browserify solve these problems by translating such code to a form browser is able to execute . 诸如Webpack和Browserify之类的工具通过将此类代码转换为浏览器能够执行的形式来解决这些问题。 On top of that, they make it possible to apply a huge variety of optimisations on those bundles. 最重要的是,它们使对这些捆绑软件进行各种各样的优化成为可能。

However, Webpack and Browserify differ in many ways, Webpack offers many tools by default (eg code splitting), while Browserify can do this only after downloading plugins but using both leads to very similar results . 但是,Webpack和Browserify在许多方面有所不同,Webpack默认提供许多工具(例如,代码拆分),而Browserify仅在下载插件后才能执行此操作,但使用这两种方法会导致非常相似的结果 It comes down to personal preference (Webpack is trendier). 它归结为个人喜好(Webpack更为流行)。 Btw, Webpack is not a task runner, it is just processor of your files (it processes them by so called loaders and plugins) and it can be run (among other ways) by a task runner. 顺便说一句,Webpack不是任务运行程序,它只是文件的处理器(它通过所谓的加载程序和插件来处理文件),并且可以由任务运行程序(其他方式)运行。


Webpack Dev Server Webpack开发服务器

Webpack Dev Server provides similar solution to Browsersync - a development server where you can deploy your app rapidly as you are working on it, and verify your development progress immediately with the dev server automatically refreshing the browser on code changes or even propagating changed code to browser without reloading with so called hot module replacement. Webpack Dev Server提供了与Browsersync类似的解决方案-一种开发服务器,您可以在开发过程中快速部署应用程序,并通过开发服务器立即根据代码更改自动刷新浏览器甚至将更改的代码传播到浏览器,从而验证开发进度无需重新加载所谓的热模块更换。


Task runners vs NPM scripts 任务运行程序与NPM脚本

I've been using Gulp for its conciseness and easy task writing, but have later found out I need neither Gulp nor Grunt at all. 我一直在使用Gulp的简洁性和易于编写的任务,但是后来发现我根本不需要Gulp或Grunt。 Everything I have ever needed could have been done using NPM scripts to run 3rd-party tools through their API. 使用NPM脚本通过其API运行第三方工具,我曾经需要的一切都可以完成。 Choosing between Gulp, Grunt or NPM scripts depends on taste and experience of your team. 在Gulp,Grunt或NPM脚本之间进行选择取决于团队的品味和经验。

While tasks in Gulp or Grunt are easy to read even for people not so familiar with JS, it is yet another tool to require and learn and I personally prefer to narrow my dependencies and make things simple. 尽管即使对于不那么熟悉JS的人来说,Gulp或Grunt的任务也很容易阅读,但它是又一个需要学习的工具,我个人更喜欢缩小依赖范围并使事情变得简单。 On the other hand, replacing these tasks with the combination of NPM scripts and (propably JS) scripts which run those 3rd party tools (eg. Node script configuring and running rimraf for cleaning purposes) might be more challenging. 另一方面,用NPM脚本和运行那些第3方工具(例如,为清洁目的配置Node脚本并运行rimraf )的NPM脚本和(可能是JS)脚本的组合来替换这些任务可能更具挑战性。 But in the majority of cases, those three are equal in terms of results. 但是在大多数情况下, 这三个结果是相等的。


Examples 例子

As for the examples, I suggest you have a look at this React starter project , which shows you a nice combination of NPM and JS scripts covering the whole build and deploy process. 对于示例,我建议您看一下这个React starter项目 ,该项目向您展示了NPM和JS脚本的完美结合,涵盖了整个构建和部署过程。 You can find those NPM scripts in package.json in the root folder, in a property named scripts . 您可以在根文件夹的package.json中的名为scripts的属性中找到这些NPM scripts There you will mostly encounter commands like babel-node tools/run start . 在那里,您通常会遇到诸如babel-node tools/run start类的命令。 Babel-node is a CLI tool (not meant for production use), which at first compiles ES6 file tools/run (run.js file located in tools ) - basically a runner utility. Babel-node是一个CLI工具(不适用于生产用途),首先会编译ES6文件tools/run (位于tools中的 run.js文件)-本质上是一个运行器实用程序。 This runner takes a function as an argument and executes it, which in this case is start - another utility (start.js) responsible for bundling source files (both client and server) and starting the application and development server (the dev server will be probably either Webpack Dev Server or Browsersync). 这个运行需要一个函数作为参数并执行它,在这种情况下是start -其他实用工具(start.js)负责绑定的源文件(客户端和服务器),并启动应用程序和开发服务器(开发服务器会可能是Webpack开发服务器或Browsersync)。

Speaking more precisely, start.js creates both client and server side bundles, starts express server and after successful start inits Browser-sync, which at the time of writing looked like this (please refer to react starter project for the newest code). 准确地说,start.js会创建客户端和服务器端捆绑包,启动快速服务器,并在成功启动后启动其Browser-sync,在编写本文时,它看起来像这样(有关最新代码,请参考React Starter项目 )。

const bs = Browsersync.create();  
bs.init({...(DEBUG ? {} : { notify: false, ui: false }),proxy: {target: host,middleware: [wpMiddleware, ...hotMiddlewares],},// no need to watch '*.js' here, webpack will take care of it for us,// including full page reloads if HMR won't workfiles: ['build/content/**/*.*'],
}, resolve)

The important part is proxy.target , where they set server address they want to proxy, which could be http://localhost:3000 , and Browsersync starts a server listening on http://localhost:3001 , where the generated assets are served with automatic change detection and hot module replacement. 重要的部分是proxy.target ,他们在其中设置要代理的服务器地址,该地址可以是http:// localhost:3000 ,并且Browsersync启动一个服务器侦听http:// localhost:3001 ,在该服务器中提供生成的资产具有自动更改检测和热模块更换功能。 As you can see, there is another configuration property files with individual files or patterns Browser-sync watches for changes and reloads the browser if some occur, but as the comment says, Webpack takes care of watching js sources by itself with HMR, so they cooperate there. 如您所见,还有另一个带有单个文件或模式的配置属性files ,浏览器同步监视更改并在发生某些更改时重新加载浏览器,但是正如评论所述,Webpack会通过HMR自行监视js源,因此它们在那里合作。

Now I don't have any equivalent example of such Grunt or Gulp configuration, but with Gulp (and somewhat similarly with Grunt) you would write individual tasks in gulpfile.js like 现在我没有任何类似的Grunt或Gulp配置示例,但是对于Gulp(和Grunt有点类似),您可以在gulpfile.js中编写单个任务,例如

gulp.task('bundle', function() {// bundling source files with some gulp plugins like gulp-webpack maybe
});gulp.task('start', function() {// starting server and stuff
});

where you would be doing essentially pretty much the same things as in the starter-kit, this time with task runner, which solves some problems for you, but presents its own issues and some difficulties during learning the usage, and as I say, the more dependencies you have, the more can go wrong. 这次使用任务运行程序,您实际上将执行与入门工具包中几乎相同的操作,这为您解决了一些问题,但提出了自己的问题以及学习用法时遇到的一些困难,正如我所说,您拥有的依赖项越多,出错的可能性就越大。 And that is the reason I like to get rid of such tools. 这就是我喜欢摆脱此类工具的原因。


#3楼

A small note about npm: npm3 tries install dependencies in a flat way 关于npm的小提示:npm3尝试以扁平方式安装依赖项

https://docs.npmjs.com/how-npm-works/npm3#npm-v3-dependency-resolution https://docs.npmjs.com/how-npm-works/npm3#npm-v3-dependency-resolution


#4楼

You can find some technical comparison on npmcompare 您可以在npmcompare上找到一些技术比较

Comparing browserify vs. grunt vs. gulp vs. webpack 比较Browserify,Grunt,Gulp和Webpack

As you can see webpack is very well maintained with a new version coming out every 4 days on average. 如您所见,webpack维护得很好,平均每4天就会发布一个新版本。 But Gulp seems to have the biggest community of them all (with over 20K stars on Github) Grunt seems a bit neglected (compared to the others) 但是Gulp似乎拥有最大的社区(Github上有超过2万颗星)Grunt似乎被忽略了(与其他人相比)

So if need to choose one over the other i would go with Gulp 因此,如果需要选择一个,我会选择Gulp


#5楼

Update October 2018 2018年10月更新

If you are still uncertain about Front-end dev, can take a quick look into an excellent resource here. 如果您仍然不确定Front-end开发人员,可以在这里快速查看出色的资源。

https://github.com/kamranahmedse/developer-roadmap https://github.com/kamranahmedse/developer-roadmap

Update June 2018 2018年6月更新

Learning modern JavaScript is tough if you haven't been there since the beginning. 如果您从一开始就没有去过那里,那么学习现代JavaScript将会很困难。 If you are the new comer, remember to check this excellent written to have a better overview. 如果您是新手,请记得阅读这篇出色的文章,以获得更好的概述。

https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70 https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70

Update July 2017 2017年7月更新

Recently I found a really comprehensive guide from Grab team about how to approach front-end development in 2017. You can check it out as below. 最近,我从Grab团队那里找到了一份非常全面的指南,内容涉及如何在2017年进行前端开发。您可以按照以下方法进行检查。

https://github.com/grab/front-end-guide https://github.com/grab/front-end-guide


I've been also searching for this quite some time since there is a lot of tools out there and each of them benefits us in a different aspect. 我也一直在寻找这个时间,因为那里有很多工具,并且每个工具都在不同方面使我们受益。 The community is divided across tools like Browserify, Webpack, jspm, Grunt and Gulp . 该社区分为各种工具,例如Browserify, Webpack, jspm, Grunt and Gulp You might also hear about Yeoman or Slush . 您可能还会听说Yeoman or Slush That's not really a problem, it's just confusing for everyone trying to understand a clear path forward. 这并不是一个真正的问题,只是让每个试图理解一条清晰道路的人感到困惑。

Anyway, I would like to contribute something. 无论如何,我想贡献一点。

1. Package Manager 1.包管理器

Package managers simplify installing and updating project dependencies, which are libraries such as: jQuery, Bootstrap , etc - everything that is used on your site and isn't written by you. 程序包管理器简化了项目依赖项的安装和更新,这些依赖项是诸如jQuery, Bootstrap类的库-站点上使用的所有内容,而不是您编写的。

Browsing all the library websites, downloading and unpacking the archives, copying files into the projects — all of this is replaced with a few commands in the terminal. 浏览所有图书馆网站,下载和解压缩档案,将文件复制到项目中-所有这些都由终端中的一些命令代替。

  • NPM stands for: Node JS package manager helps you to manage all the libraries your software relies on. NPM代表: Node JS package manager可帮助您管理软件所依赖的所有库。 You would define your needs in a file called package.json and run npm install in the command line... then BANG, your packages are downloaded and ready to use. 您将在一个名为package.json的文件中定义您的需求,并在命令行中运行npm install ...然后,BANG,您的软件包已下载并可以使用。 Could be used both for front-end and back-end libraries. 既可以用于front-end and back-end库,也可以用于front-end and back-end库。

  • Bower : for front-end package management, the concept is same with NPM. Bower :对于前端软件包管理,其概念与NPM相同。 All your libraries are stored in a file named bower.json and then run bower install in the command line. 您所有的库都存储在名为bower.json的文件中,然后在命令行中运行bower install

The biggest difference between Bower and NPM is that NPM does nested dependency tree while Bower requires a flat dependency tree as below. BowerNPM之间的最大区别是NPM确实嵌套了依赖树,而Bower需要如下所示的平面依赖树。

Quoting from What is the difference between Bower and npm? 引用Bower和npm有什么区别?

NPM NPM

project root
[node_modules] // default directory for dependencies-> dependency A-> dependency B[node_modules]-> dependency A-> dependency C[node_modules]-> dependency B[node_modules]-> dependency A -> dependency D

Bower 凉亭

project root
[bower_components] // default directory for dependencies-> dependency A-> dependency B // needs A-> dependency C // needs B and D-> dependency D

There are some updates on npm 3 Duplication and Deduplication , please open the doc for more detail. npm 3 Duplication and Deduplication上有一些更新,请打开文档以获取更多详细信息。

  • Yarn : A new package manager for JavaScript published by Facebook recently with some more advantages compared to NPM . YarnFacebook 发行的一种新的JavaScript软件包管理器,与NPM相比,它具有更多优势。 And with Yarn, you still can use both NPM and Bower registry to fetch the package. 使用Yarn,您仍然可以同时使用NPMBower注册表来获取软件包。 If you've installed a package before, yarn creates a cached copy which facilitates offline package installs . 如果您以前安装过软件包,则yarn会创建一个缓存的副本,以方便offline package installs

  • jspm : is a package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader. jspm :是在动态ES6模块加载器之上构建的SystemJS通用模块加载器的软件包管理器。 It is not an entirely new package manager with its own set of rules, rather it works on top of existing package sources. 它不是具有自己的一组规则的全新软件包管理器,而是可以在现有软件包源之上运行。 Out of the box, it works with GitHub and npm . 开箱即用,它可以与GitHubnpm As most of the Bower based packages are based on GitHub , we can install the those packages using jspm as well. 由于大多数基于Bower的软件包都基于GitHub ,因此我们也可以使用jspm安装这些软件包。 It has a registry that lists most of the commonly used front-end packages for easier installation. 它有一个注册表,其中列出了大多数常用的前端软件包,以便于安装。

See the different between Bower and jspm : Package Manager: Bower vs jspm 看到Bowerjspm之间的区别: 程序包管理器:Bower vs jspm


2. Module Loader/Bundling 2.模块加载器/捆绑

Most projects of any scale will have their code split between a number of files. 任何规模的大多数项目的代码都将分为多个文件。 You can just include each file with an individual <script> tag, however, <script> establishes a new http connection, and for small files – which is a goal of modularity – the time to set up the connection can take significantly longer than transferring the data. 您可以只在每个文件中包含一个单独的<script>标记,但是<script>建立一个新的http连接,对于小型文件(这是模块化的目标),建立连接的时间可能比传输要长得多。数据。 While the scripts are downloading, no content can be changed on the page. 在下载脚本时,无法在页面上更改任何内容。

  • The problem of download time can largely be solved by concatenating a group of simple modules into a single file, and minifying it. 下载时间问题可以通过将一组简单模块串联到一个文件中并进行最小化来解决。

Eg 例如

<head><title>Wagon</title><script src=“build/wagon-bundle.js”></script>
</head>
  • The performance comes at the expense of the flexibility though. 但是,性能是以牺牲灵活性为代价的。 If your modules have inter-dependency, this lack of flexibility may be a showstopper. 如果您的模块具有相互依赖性,则缺乏灵活性可能会成为热门。

Eg 例如

<head><title>Skateboard</title><script src=“connectors/axle.js”></script><script src=“frames/board.js”></script><!-- skateboard-wheel and ball-bearing both depend on abstract-rolling-thing --><script src=“rolling-things/abstract-rolling-thing.js”></script><script src=“rolling-things/wheels/skateboard-wheel.js”></script><!-- but if skateboard-wheel also depends on ball-bearing --><!-- then having this script tag here could cause a problem --><script src=“rolling-things/ball-bearing.js”></script><!-- connect wheels to axle and axle to frame --><script src=“vehicles/skateboard/our-sk8bd-init.js”></script>
</head>

Computers can do that better than you can, and that is why you should use a tool to automatically bundle everything into a single file. 计算机可以比您做的更好,这就是为什么您应该使用工具将所有内容自动捆绑到一个文件中的原因。

Then we heard about RequireJS , Browserify , Webpack and SystemJS 然后我们听说了RequireJSBrowserifyWebpackSystemJS

  • RequireJS : is a JavaScript file and module loader. RequireJS :是一个JavaScript文件和模块加载器。 It is optimized for in-browser use, but it can be used in other JavaScript environments, like Node . 它针对浏览器内使用进行了优化,但可以在其他JavaScript环境中使用,例如Node

Eg: myModule.js 例如: myModule.js

// package/lib is a dependency we require
define(["package/lib"], function (lib) {// behavior for our modulefunction foo() {lib.log( "hello world!" );}// export (expose) foo to other modules as foobarreturn {foobar: foo}
});

In main.js , we can import myModule.js as dependency and use it. main.js ,我们可以将myModule.js导入为依赖项并使用它。

require(["package/myModule"], function(myModule) {myModule.foobar();
});

And then in our HTML , we can refer to use with RequireJS . 然后在我们的HTML ,我们可以使用RequireJS进行引用。

<script src=“app/require.js” data-main=“main.js” ></script>

Read more about CommonJS and AMD to get understanding easily. 阅读有关CommonJSAMD更多信息以轻松理解。 Relation between CommonJS, AMD and RequireJS? CommonJS,AMD和RequireJS之间的关系?

  • Browserify : set out to allow use of CommonJS formatted modules in the browser. Browserify :允许在浏览器中使用CommonJS格式的模块。 Consequently, Browserify isn't as much a module loader as a module bundler: Browserify is entirely a build-time tool, producing a bundle of code which can then be loaded client-side. 因此, Browserify是模块捆绑器, Browserify是模块加载器: Browserify完全是一个构建时工具,可以生成一捆代码,然后可以在客户端进行加载。

Start with a build machine that has node & npm installed, and get the package: 从安装了node&npm的构建机器开始,并获取软件包:

npm install -g –save-dev browserify

Write your modules in CommonJS format CommonJS格式编写模块

//entry-point.js
var foo = require('../foo.js');
console.log(foo(4));

And when happy, issue the command to bundle: 并在高兴时发出捆绑命令:

browserify entry-point.js -o bundle-name.js

Browserify recursively finds all dependencies of entry-point and assembles them into a single file: Browserify递归地找到入口点的所有依赖项,并将它们组合成一个文件:

<script src=”bundle-name.js”></script>
  • Webpack : It bundles all of your static assets, including JavaScript , images, CSS and more, into a single file. Webpack :它将您的所有静态资产(包括JavaScript ,图像,CSS等)捆绑到一个文件中。 It also enables you to process the files through different types of loaders. 它还使您能够通过不同类型的加载程序来处理文件。 You could write your JavaScript with CommonJS or AMD modules syntax. 您可以使用CommonJSAMD模块语法编写JavaScript It attacks the build problem in a fundamentally more integrated and opinionated manner. 它从根本上更加集成和自觉地攻击了构建问题。 In Browserify you use Gulp/Grunt and a long list of transforms and plugins to get the job done. Browserify您可以使用Gulp/Grunt和一长串的转换和插件来完成工作。 Webpack offers enough power out of the box that you typically don't need Grunt or Gulp at all. Webpack开箱即Webpack提供了足够的功能,您通常根本不需要GruntGulp

Basic usage is beyond simple. 基本用法非常简单。 Install Webpack like Browserify: 像Browserify一样安装Webpack:

npm install -g –save-dev webpack

And pass the command an entry point and an output file: 并向命令传递一个入口点和一个输出文件:

webpack ./entry-point.js bundle-name.js
  • SystemJS : is a module loader that can import modules at run time in any of the popular formats used today ( CommonJS, UMD, AMD, ES6 ). SystemJS :是一个模块加载器, 可以在运行时以当今使用的任何流行格式CommonJS, UMD, AMD, ES6导入模块 It is built on top of the ES6 module loader polyfill and is smart enough to detect the format being used and handle it appropriately. 它建立在ES6模块加载器polyfill之上,并且足够智能,可以检测到所使用的格式并进行适当处理。 SystemJS can also transpile ES6 code (with Babel or Traceur ) or other languages such as TypeScript and CoffeeScript using plugins. SystemJS还可以使用插件来转换ES6代码(使用BabelTraceur )或其他语言,例如TypeScriptCoffeeScript

Want to know what is the node module and why it is not well adapted to in-browser. 想知道什么是node module以及为什么它不适用于浏览器。

More useful article: 更有用的文章:

  • https://medium.com/@housecor/browserify-vs-webpack-b3d7ca08a0a9#.c1q7ao3h4 https://medium.com/@housecor/browserify-vs-webpack-b3d7ca08a0a9#.c1q7ao3h4
  • http://jamesknelson.com/which-build-system-should-i-use-for-my-javascript-app/ http://jamesknelson.com/which-build-system-should-i-use-for-my-javascript-app/
  • https://appendto.com/2016/06/the-short-history-of-javascript-module-loaders/ https://appendto.com/2016/06/the-short-history-of-javascript-module-loaders/

Why jspm and SystemJS ? 为什么选择jspmSystemJS

One of the main goals of ES6 modularity is to make it really simple to install and use any Javascript library from anywhere on the Internet ( Github , npm , etc.). ES6模块化的主要目标之一是使从Internet上任何地方( Githubnpm等)安装和使用任何Javascript库的过程变得非常简单。 Only two things are needed: 只需要两件事:

  • A single command to install the library 单个命令即可安装库
  • One single line of code to import the library and use it 一行代码即可导入库并使用它

So with jspm , you can do it. 因此,使用jspm ,您可以做到。

  1. Install the library with a command: jspm install jquery 使用以下命令安装库: jspm install jquery
  2. Import the library with a single line of code, no need to external reference inside you HTML file. 只需单行代码即可导入库,而无需在HTML文件内部进行外部引用。

display.js display.js

 var $ = require('jquery'); $('body').append("I've imported jQuery!"); 
  1. Then you configure these things within System.config({ ... }) before importing your module. 然后,在导入模块之前,请在System.config({ ... })配置这些内容。 Normally when run jspm init , there will be a file named config.js for this purpose. 通常,在运行jspm init ,将有一个名为config.js的文件用于此目的。

  2. To make these scripts run, we need to load system.js and config.js on the HTML page. 为了使这些脚本运行,我们需要在HTML页面上加载system.jsconfig.js After that we will load the display.js file using the SystemJS module loader. 之后,我们将使用SystemJS模块加载器加载display.js文件。

index.html index.html

 <script src="jspm_packages/system.js"></script> <script src="config.js"></script> <script> System.import("scripts/display.js"); </script> 

Noted: You can also use npm with Webpack as Angular 2 has applied it. 注意:Angular 2已将npmWebpack一起使用。 Since jspm was developed to integrate with SystemJS and it works on top of existing npm source, so your answer is up to you. 由于jspm是为与SystemJS集成而开发的,并且可以在现有npm源代码之上npm ,因此您的答案取决于您。


3. Task runner 3.任务执行器

Task runners and build tools are primarily command-line tools. 任务运行器和构建工具主要是命令行工具。 Why we need to use them: In one word: automation . 为什么需要使用它们:一句话: 自动化 The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting which previously cost us a lot of times to do with command line or even manually. 在执行诸如缩小,编译,单元测试,整理等重复性任务时,您以前要做的工作较少而以前使用命令行甚至手动进行这些工作花费了我们很多时间。

  • Grunt : You can create automation for your development environment to pre-process codes or create build scripts with a config file and it seems very difficult to handle a complex task. Grunt :您可以为开发环境创建自动化功能,以预处理代码或使用配置文件创建构建脚本,这似乎很难处理复杂的任务。 Popular in last few years. 在最近几年流行。

Every task in Grunt is an array of different plugin configurations, that simply get executed one after another, in a strictly independent, and sequential fashion. Grunt中的每个任务都是一系列不同的插件配置,这些插件配置以严格独立且顺序的方式一个接一个地执行。

grunt.initConfig({clean: {src: ['build/app.js', 'build/vendor.js']},copy: {files: [{src: 'build/app.js',dest: 'build/dist/app.js'}]}concat: {'build/app.js': ['build/vendors.js', 'build/app.js']}// ... other task configurations ...});grunt.registerTask('build', ['clean', 'bower', 'browserify', 'concat', 'copy']);
  • Gulp : Automation just like Grunt but instead of configurations, you can write JavaScript with streams like it's a node application. Gulp :自动化与Grunt一样,但是除了配置之外,您还可以像节点应用程序一样使用流编写JavaScript Prefer these days. 这些天比较喜欢。

This is a Gulp sample task declaration. 这是一个Gulp示例任务声明。

//import the necessary gulp plugins
var gulp = require('gulp');
var sass = require('gulp-sass');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');//declare the task
gulp.task('sass', function(done) {gulp.src('./scss/ionic.app.scss').pipe(sass()).pipe(gulp.dest('./www/css/')).pipe(minifyCss({keepSpecialComments: 0})).pipe(rename({ extname: '.min.css' })).pipe(gulp.dest('./www/css/')).on('end', done);
});

See more: https://medium.com/@preslavrachev/gulp-vs-grunt-why-one-why-the-other-f5d3b398edc4#.fte0nahri 查看更多: https : //medium.com/@preslavrachev/gulp-vs-grunt-why-one-why-the-other-f5d3b398edc4#.fte0nahri


4. Scaffolding tools 4.脚手架工具

  • Slush and Yeoman : You can create starter projects with them. Slush and Yeoman :您可以使用它们创建启动项目。 For example, you are planning to build a prototype with HTML and SCSS, then instead of manually create some folder like scss, css, img, fonts. 例如,您计划使用HTML和SCSS构建原型,而不是手动创建一些文件夹,如scss,css,img,字体。 You can just install yeoman and run a simple script. 您可以只安装yeoman并运行一个简单的脚本。 Then everything here for you. 然后一切都在这里为您服务。

Find more here . 在这里找到更多。

npm install -g yo
npm install --global generator-h5bp
yo h5bp

See more: https://www.quora.com/What-are-the-differences-between-NPM-Bower-Grunt-Gulp-Webpack-Browserify-Slush-Yeoman-and-Express 查看更多: https : //www.quora.com/What-are-the-differences-between-NPM-Bower-Grunt-Gulp-Webpack-Browserify-Slush-Yeoman-and-Express


My answer is not really matched with the content of the question but when I'm searching for these knowledge on Google, I always see the question on top so that I decided to answer it in summary. 我的答案与问题的内容并不完全匹配,但是当我在Google上搜索这些知识时,我总是会在顶部看到该问题,因此我决定对它进行总结。 Hope you guys found it helpful. 希望你们觉得对您有帮助。


#6楼

Yarn is a recent package manager that probably deserves to be mentioned. Yarn是最近的软件包管理器,可能值得一提。 So, there : https://yarnpkg.com/ 因此,那里: https : //yarnpkg.com/

Afaik, it can fetch both npm and bower dependencies and has other appreciated features. Afaik,它可以获取npm和bower依赖关系,并具有其他令人赞赏的功能。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Angular 学习笔记 ( 创建 library, 转换老旧的 library )

    更新 : 2018-10-28 不知道为什么在 ng 跑一直做不到 .d.ts 最后发现&#xff0c;如果有一个插件 propagating-hammerjs.ts 那么就在 root create 一个 propagating-hammerjs.d.ts &#xff0c;名字要匹配到&#xff0c;这样就可以跑了。 暂时不管先呗.. refer : https://blo…...

    2024/4/21 4:10:58
  2. angular和react_为什么我在2018年从Angular切换到React和Redux

    angular和reacthttp://blog.workshape.io 提示&#xff1a;不是因为炒作 我与Angular建立了这种爱恨交加的关系已有相当一段时间了。 这很有趣&#xff0c;因为当我陷入困境时&#xff0c;我正在学习并且正在制作一个简单的应用程序。 数周。 我注意到&#xff0c;即使在使最…...

    2024/4/27 13:38:44
  3. ASP.NET 5系列教程 (五):在Visual Studio 2015中使用Grunt、Bower开发Web程序

    基于Visual Studio 2015&#xff0c;你可以&#xff1a; 方便的管理前端包&#xff0c;如jQuery, Bootstrap, 或Angular。自动运行任务&#xff0c;如LESS、JavaScript压缩、JSLint、JavaScript单元测试等。方便的获得Web开发者生态圈的工具包。为了实现这些场景&#xff0c;Vi…...

    2024/4/21 4:10:55
  4. javascript 大前端 完全升级之 npm+gulp+systemjs+typescript by 2016.01

    本文是2016.01.01的新年礼物。 本文并非javascript、node、bower、grunt、gulp、systemjs等等技术的入门文档&#xff0c;阅读本文需要你对上述知识有比较系统的了解&#xff0c;最好有实战经验。可以先参考如下文章&#xff1a; javascript 前端 基于 npm、bower、grunt的标…...

    2024/4/21 4:10:53
  5. 在Visual Studio 2015中使用Grunt、Bowe

    基于Visual Studio 2015&#xff0c;你可以&#xff1a; 方便的管理前端包&#xff0c;如jQuery, Bootstrap, 或Angular。 自动运行任务&#xff0c;如LESS、JavaScript压缩、JSLint、JavaScript单元测试等。 方便的获得Web开发者生态圈的工具包。 为了实现这些场景&#xf…...

    2024/4/21 4:10:52
  6. Angular知识总结及学习资料(中文版)

    AngularJS 这是一个AngularJS Guide的中文分支版本&#xff0c;提供关于AngularJS的视频、入门、使用与论坛等中文互联网内容&#xff0c;这里的分类并没有完全参照英文版&#xff0c;也并不固定&#xff0c;如果你有发现新的内容需要添加新类别&#xff0c;直接加吧。 视频 An…...

    2024/4/20 7:44:11
  7. TypeScript简介:Web的静态键入

    TypeScript是使用JavaScript创建更好的体验的众多尝试之一。 “哦&#xff0c;由于原因A我正在使用Gulp”或“哦&#xff0c;由于原因B我正在使用Redux”。 您总是会听到前端开发人员的这类信息。 使用新的方法来改善JavaScript的旧错误已成为一种时尚&#xff0c;这不是一件坏…...

    2024/4/21 4:10:50
  8. Angular8稳定版修改概述

    在今天早些时候Angular团队发布了8.0.0稳定版。其实早在NgConf 2019大会上&#xff0c;演讲者就已经提及了从工具到差分加载的许多内容以及更多令人敬畏的功能。下面是我对8.0.0一些新功能的简单介绍&#xff0c;希望可以帮助大家快速了解新版本。 新功能 差分加载 根据您的bro…...

    2024/4/21 4:10:49
  9. ES5, ES2015 和 TypeScript 的区别

    转自&#xff1a;https://www.oschina.net/translate/es5-es2015-typescript ES5, ES2015 和 TypeScript 的区别 【已翻译100%】 英文原文&#xff1a;Understanding ES5, ES2015 and TypeScript标签&#xff1a; TypeScriptthinkgood 推荐于 1年前 (共 10 段, 翻译完成于 07-0…...

    2024/4/21 4:10:48
  10. typescript 静态_TypeScript简介:Web的静态键入

    typescript 静态TypeScript是使用JavaScript创建更好的体验的众多尝试之一。 “哦&#xff0c;由于原因A我正在使用Gulp”或“哦&#xff0c;由于原因B我正在使用Redux”。 您总是会听到前端开发人员的这类信息。 使用新的方法来改善JavaScript的旧错误已成为一种时尚&#xf…...

    2024/4/22 11:09:46
  11. Angular核心概念

    为什么80%的码农都做不了架构师&#xff1f;>>> 一、集成开发环境angular/cli IE8之后才有debugger工具2009&#xff0c;nodejs发布&#xff0c;前端Big Bang1.1 基于NodeJS的工具链 打包工具 grunt 对js代码做合并、压缩、混淆gulp grunt的改进版webpck 打包工具&…...

    2024/4/21 4:10:47
  12. 什么是TypeScript,为什么我会用它代替JavaScript?

    TypeScript是JavaScript的超集&#xff0c;主要提供可选的静态类型&#xff0c;类和接口。其中一个重要好处是使IDE能够在您键入代码时提供更丰富的环境来发现常见错误。 要了解我的意思&#xff0c;请观看Microsoft关于该语言的介绍性视频。 对于大型JavaScript项目&#xf…...

    2024/4/21 4:10:46
  13. 搭建 react + typescript + ant design 开发环境

    9102 年了&#xff0c;前端工程化发展在 nodejs 的基础上已经发展的非常完善了&#xff0c;各种前端构建辅助工具层出不穷。ES6 编译器 babel&#xff0c;css 辅助工具 postcss / sass / less&#xff0c;代码风格检测工具 eslint / prettier / stylelint&#xff0c;git 辅助工…...

    2024/4/20 19:53:45
  14. 【Angular系列】5. 自定义input输入框组件

    这篇我们自定义input输入框组件&#xff0c;同样支持NgModel和reactive forms&#xff0c;支持验证自定义message提醒&#xff0c;支持浮动label&#xff0c;支持自定义主题色等。 1. 第一步同样是新增一个input文件夹&#xff0c;新增相应的文件如下&#xff1a; 2. 定义inpu…...

    2024/4/25 15:50:55
  15. Angular 组件样式的封装(隔离)

    Angular 组件样式的封装 样式封装 在html中&#xff0c;无论一个style元素定义在什么地方&#xff0c;其内部的规则都是作用到整个html文档的。从框架的设计和使用者角度来看&#xff0c;对组件样式都一种封装需求&#xff1a;就是希望针对组件定义的样式只在这个组件内部生效&…...

    2024/4/20 19:53:42
  16. angular2封装组件(一)——引用js包

    问题&#xff1a; 怎么用好js的包 答案&#xff1a;尽量找那种对外提供了对象的js包&#xff0c;比如 JQuery包&#xff0c;提供了$对象&#xff0c;swiper包&#xff0c;提供了swiper对象。还有 ztree包&#xff0c;echarts包&#xff0c; 尽量找有 官方文档的js包&#xff0…...

    2024/4/20 19:53:41
  17. pb怎么封装com组件_从零开始构建 Angular 组件库

    NG-ZORRO 组件库官网地址&#xff1a;Ant Design Of AngularGithub地址&#xff1a;NG-ZORRO/ng-zorro-antd更新&#xff1a;视频已上传谢亚东演讲视频_腾讯视频​v.qq.comhttps://www.youtube.com/watch?vIn-MM3SqL0E&t17s​www.youtube.com本文根据 NG China 2018大会上…...

    2024/4/21 4:10:44
  18. Angular父组件内修改子组件的样式

    问题的产生与描述 在使用NG-ZORRO组件的过程中&#xff0c;需要根据产品的需要&#xff0c;在某些页面修改某些NZ组件的样式。但是由于angular默认采用了Emulated的视图封装模式&#xff0c;导致即便我们想在父组件中直接去重写子组件的样式&#xff0c;也无法办到。 例如AppCo…...

    2024/4/21 4:10:44
  19. 第14篇:angular动态添加和删除组件元素的封装函数

    实现功能包括&#xff1a; 1&#xff09;默认保留一组组件&#xff0c;每组组件自带删除按钮&#xff1b; 2&#xff09;每点击增加按钮&#xff0c;增加一组类似组件&#xff1b; 3&#xff09;点击每组组件上的删除按钮则删除该组组件&#xff0c;剩最后一组组件时点击删除…...

    2024/4/21 4:10:42
  20. 使用对象流时产生了EOFException异常

    在写一个监听器更新当前页面访问浏览次数时,因为需要在服务器停止时将浏览次数保存在文件中,方便下次调用。为了保存多个页面的数据,使用了Map集合。保存的时候经过检查文件,可以确定没有发生任何错误,但是在重启TOMCAT时,始终会产生一个EOFException异常,无法读取到任何…...

    2024/4/21 4:10:42

最新文章

  1. golang反射

    go反射 反射基本介绍应用场景基本使用结构体注意练习最佳实践遍历结构体的方法&#xff0c;调用接头体的方法&#xff0c;获取结构体的标签 反射 基本介绍 反射可以在运行时动态获取变量的各种信息&#xff0c;比如变量的类型(type)、类别(kind)如果是结构体变量&#xff0c;…...

    2024/4/27 17:02:24
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 利用Sentinel解决雪崩问题(一)

    1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待;舱壁模式:限定每个业务能使用的线程数&#xff0c;避免耗尽整个tomcat的资源&#xff0c;因此也叫线程隔离;熔断降级:由断路器统计业务…...

    2024/4/24 3:11:43
  4. 面试经典算法系列之双指针1 -- 合并两个有序数组

    面试经典算法题1 – 合并两个有序数组 LeetCode.88 公众号&#xff1a;阿Q技术站 问题描述 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#…...

    2024/4/24 21:21:10
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57