假设npm上有一个名为"awesomepackage"的模块.我可以将它注册为我的应用程序的依赖项,package.json如下所示:
npm i --save awesomepackage
Run Code Online (Sandbox Code Playgroud)
检查我的node_modules文件夹,我看到一个名为"awesomepackage"的文件夹,如下所示:
- index.js
- package.json
- README.md
- lib/
- awesomepackage.min.js
Run Code Online (Sandbox Code Playgroud)
我可以在我自己的应用程序中使用这样的包:
import {AwesomeThing} from 'awesomepackage';
Run Code Online (Sandbox Code Playgroud)
当我使用webpack构建我的应用程序时,我的最终bundle.js总是包含源代码node_modules/awesomepackage/index.js- 无论我设置了什么环境变量(例如NODE_ENV=production).
有没有办法告诉webpack使用预先构建的文件(例如node_modules/awesomepackage/lib/awesomepackage.min.js),如果它们作为NPM包的一部分提供,而不是从源代码重新构建?
我所看到的解决方案是 使用 resolve.alias并noParse与硬编码路径的WebPack配置到精缩源文件,但不认为多数击败使用NPM和的WebPack的目的是什么?我不想硬编码和维护每个依赖项的缩小构建文件的路径!
我来到这里是因为bundle.js当我添加时我跳了2.5mb moment.js- 这是167kb缩小,包括所有语言环境,但源代码包括2mb的测试.
显然,除了最后缩小最终bundle.js文件之外,还有更多内容.例如:为什么有人想要在最终生产代码中包含数百个不必要的单元测试依赖项?他们没有.这就是为什么大多数库提供dist(或类似)文件夹作为其npm模块的一部分.
关于这一点我没说太多.那好吧.谷歌发布了一个名为Nougat(android N)的新版android.它是compileSdkVersion 24.但是,在官方文档中的构建工具页面上,没有提到它.
我想让我的应用程序100%的人使用Google Play商店,其中包括Android N用户.
tl;博士:我应该在buildToolsVersion字段中填写什么?
谢谢.
我需要弄清楚哪些翻译单元需要重组以改善编译时间,如何使用cmake来控制编译时间?
我已经将VS2010的解决方案升级到了VS2012.我用其他解决方案做到了,它工作得很好.
但是现在当我尝试构建更新的解决方案时,编译器告诉我:
Error 1596 error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install Visual Studio 2010 to build using the Visual Studio 2010 build tools. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets 42 5 praat3
Run Code Online (Sandbox Code Playgroud)
我不知道为什么编译器会尝试使用VS2010.
在项目属性页面中,我在"调试源文件"下面看到以下条目:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\crt\src\
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc\
etc.
Run Code Online (Sandbox Code Playgroud)
此外,如果我将"Platformtoolset"设置为"从上面的项目继承或项目标准",则默认为"v100".我认为这是关于这里出了什么问题的最佳暗示.
偶然我设法打开了Microsoft.Cpp.Platform.targets文件,我看到那里列出了v90和v100,但没有列出v110.
只使用VS2012的人可能会查看该文件吗?
这就是我的样子: …
使用Angular CLI 1.6.0时,此Angular CLI命令使用什么服务器?
ng serve
Run Code Online (Sandbox Code Playgroud)
由于Angpack CLI正在使用webpack进行网站捆绑,这是否意味着ng-serve正在使用webpack-dev-server(这是一个Node.js Express服务器)?在下面的Q/A中有一些迹象表明ng服务可能用于搭载Ember使用的服务器:
ng serve
Run Code Online (Sandbox Code Playgroud) 为什么我得到
无法解析符号“Q”
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)使用构建工具 29.0.0检查时?
来自谷歌:
所以它已经非常存在了。
生态系统中有无数的开发工具和术语,例如语言服务器、构建服务器、Metals、BSP、LSP、Bloop、Zinc、Coursier、增量编译器、演示编译器等。
我想知道是否有人可以演示它们如何组合在一起并简要解释关系和差异。具体来说,我希望按照“理解 Scala FP 库”的思路给出图表和答案。例如,这是我的尝试
(Concept) (Example implementation)
--------------------------------------------------------------------
IDE Visual Studio Code
| |
Scala IDE plugin Metals Visual Studio Extension
| |
Language Server Protocol Microsoft LSP
| |
Scala language server Metals
| |
Build Server Protocol BSP from JetBrains and Scala Center
| |
Scala build server Bloop
| |
Build tool sbt
| |
Dependency resolution Coursier
| |
Incremental compiler Zinc
| |
Presentation compiler parser and typer phases of scalac
| …Run Code Online (Sandbox Code Playgroud) development-environment scala build-tools incremental-build scala-metals
我正在从Gulp 3升级到4,我遇到了一个错误:
The following tasks did not complete: build
Did you forget to signal async completion?
Run Code Online (Sandbox Code Playgroud)
我明白它在说什么,但无法理解为什么这段代码会触发它.
错误与否,任务完成(文件连接并写入dest).在没有lazypipe的情况下执行相同的代码不会导致错误,并且删除lazypipe中的串联也可以修复错误.
将整个事物包装在创建流的东西(如合并流)中可以解决问题.我想有关gulp-concat和lazypipe之间的交互的一些事情是阻止正确返回流.
这是(简化)任务:
gulp.task('build', function() {
var dest = 'build';
var buildFiles = lazypipe()
.pipe(plugins.concat, 'cat.js') // Task will complete if I remove this
.pipe(gulp.dest, dest);
// This works
// return gulp.src(src('js/**/*.js'))
// .pipe(plugins.concat('cat.js'))
// .pipe(gulp.dest(dest));
// This doesn't (unless you wrap it in a stream-making function)
return gulp.src(src('js/**/*.js'))
.pipe(buildFiles());
});
Run Code Online (Sandbox Code Playgroud)
任何建议赞赏!
我正在尝试设置汇总以使用SCSS样式表和Lost网格系统,这需要通过PostCSS进行解析.我已经验证SCSS正在被正确解析,但PostCSS处理器似乎没有任何影响.
根据rollup-plugin-sass文档,我只需要将vanilla JS函数传递给该processor选项.这没有错误,但生成的CSS没有什么不同.
这是我的汇总配置,用rollup -c config/dev.js:
// Rollup plugins.
import babel from 'rollup-plugin-babel';
import cjs from 'rollup-plugin-commonjs';
import globals from 'rollup-plugin-node-globals';
import replace from 'rollup-plugin-replace';
import resolve from 'rollup-plugin-node-resolve';
import sass from 'rollup-plugin-sass';
import postcss from 'postcss';
const postcssProcessor = postcss([require('autoprefixer'), require('lost')]);
export default {
dest: 'dist/app.js',
entry: 'src/index.jsx',
format: 'iife',
plugins: [
resolve({
browser: false,
main: true
}),
sass({
// processor: postcssProcessor,
output: 'dist/styles.css'
}),
babel({
babelrc: false,
exclude: 'node_modules/**',
presets: [ …Run Code Online (Sandbox Code Playgroud) 什么力量正在努力保持狡猾的旧Make(有或没有makefile生成器工具)作为构建工具突出?是否存在替代方案的缺陷,使其无法被广泛采用,或者宣传不足,或者做些什么来使其保持到位?
尽管Make在处理大型项目方面存在许多缺点和困难(例如参见http://freshmeat.net/articles/what-is-wrong-with-make),但它似乎仍然比新的,改进的替代品(如Scons)更广泛地使用.Jam,Rake,Cook等.
这些替代方案是否有可衡量的收益,或者"市场份额"主要归功于团队领导者的意见和经验?
build-tools ×10
android ×2
c++ ×2
javascript ×2
angular ×1
angular-cli ×1
cmake ×1
compilation ×1
gulp ×1
gulp-4 ×1
gulp-concat ×1
makefile ×1
node.js ×1
npm ×1
postcss ×1
promise ×1
rollupjs ×1
sass ×1
scala ×1
scala-metals ×1
scons ×1
webpack ×1