- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
问题:
在我将 AJV.js 升级到版本 6.4 后,我的 vendor bundle 包含“uri-js”ESNEXT 版本而不是破坏 IE11 兼容性的 ES5 版本。
分析:
我认为 AJV 通过 require('uri-js')
调用引用 uri-js,而 uri-js 有两种形式:
/node_modules/uri-js/dist/:
出于某种原因,Webpack (V 4.8) 将 uri-js 的“esnext”风格捆绑到我的 vendor bundle 中,而不是使用“es5”。我找不到我必须如何/在何处指定我的首选构建目标。
这是我的 webpack.config.js:
const path = require("path");
const webpack = require("webpack");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin');
module.exports = {
entry: {
app: './src/index.tsx'
},
output: {
filename: "js/[name].bundle.js",
path: __dirname + "/dist"
},
devtool: "source-map",
resolve: {
extensions: [".ts", ".tsx", ".js", ".jsx", ".json"]
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: "ts-loader"
},
{
test: /\.less$/,
use: ExtractTextPlugin.extract({
use: [{
loader: "css-loader",
options: {
localIdentName: '[local]--[hash:5]',
sourceMap: true
}
}, {
loader: "less-loader",
options: {
sourceMap: true
}
}],
fallback: "style-loader",
publicPath: "../"
}),
exclude: "/node_modules/"
},
{
test: /\.html$/,
use: 'raw-loader'
},
{
test: /\.jpe?g$|\.gif$|\.png$/i,
loader: "file-loader?name=assets/img/[name].[ext]"
},
{
test: /\.woff2?$|\.ttf$|\.eot$|\.svg$/,
use: "file-loader?name=assets/[name].[ext]"
}
]
},
plugins: [
new ExtractTextPlugin({
filename: "quino/style/style.css",
allChunks: true
}),
new HtmlWebpackPlugin({
template: "src/index.html",
filename: "index.html"
}),
new CopyWebpackPlugin([])
],
optimization: {
splitChunks: {
cacheGroups: {
commons: { test: /[\\/]node_modules[\\/]/, name: "vendors", chunks: "all" }
}
}
}
};
package.json:
{
"name": "MyApp",
"version": "1.0.0",
"sideEffects": false,
"description": "-",
"private": false,
"scripts": {
"build": "webpack --config webpack.config.js --mode production",
"dev": "webpack-dev-server --config webpack.config.js --host 0.0.0.0 --progress --colors --history-api-fallback --mode development"
},
"author": "Me",
"license": "some",
"devDependencies": {
.... stuff ....
},
"dependencies": {
.... stuff ....
"ajv": "^6.4.0",
.... more stuff ....
}
}
我知道我自己的代码会使用 TypeScript (V 2.8) 编译器转译为 ES5。但是 node_modules 呢?尤其是那些已经在他们的 dist 文件夹中发布了 ES5 版本的?
如果它在这里很重要,我的 tsconfig.json:
{
"compilerOptions": {
"outDir": "build/dist",
"module": "esnext",
"target": "es5",
"lib": ["es6", "dom"],
"sourceMap": true,
"allowJs": true,
"jsx": "react",
"moduleResolution": "node",
"rootDir": "src",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
},
"exclude": [
"dist/**",
"./*.js",
"node_modules",
"build",
"scripts",
"acceptance-tests",
"webpack",
"jest",
"src/setupTests.ts"
]
}
我还考虑过包含 Babel 以将所有 node_modules 降级为 ES5,但这对我来说听起来有点矫枉过正,尤其是因为模块已经包含了 ES5 风格。
问题:
我可以为我的 node_modules
指定首选 ES5 版本的 dist
文件夹吗?也许在我的 webpack.config 或 package.json
中?
如何选择正确的 node_modules/.../dist/
文件夹?
最佳答案
- Can I specify that I prefere ES5 version of the dist folder for my node_modules? Maybe in my webpack.config or in package.json?
据我所知,没有通用的方法来处理同一 NPM 包的不同风格(例如 ES5、ESNEXT 等)。每个包都有自己的做事方式。所以没有通用的选择方法。相反,必须将一些东西合并到您的任务运行程序(Gulp、Webpack、Grunt 等)中以解决出现的问题。
- How does the selection of the right node_modules/.../dist/ folders work?
一个 NPM 包包含一个 package.json
。在此文件中有一个 main
字段指定要在您的应用程序中包含/使用的内容或捆绑程序选择的内容等。如果不存在 main
值 index .js
将用作默认值。
选择过程的其余部分是特定于包的。这也适用于包的文件夹结构。有些使用 /dist/..
来实现不同的风格,有些则在其他文件夹中提供调试和生产版本。高度依赖于每个包本身使用的文件/文件版本。
没有像 .net Nuget 中那样的标准化系统打包 lib/...
文件夹的结构。
我仍然不确定的是为什么选择 URL-JS 的 ESNEXT 版本,因为 URL-JS 指向它的 ES5 版本。致力于此 ;-)
关于javascript - 如何选择 node_modules dist flavor 与 webpack 捆绑在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364263/
在基于 Dist::Zilla 的发行版中,我想要一些仅用于测试但不安装的文件。这些是运行时不需要的模型库。 我该怎么做? 最佳答案 CPAN 发行版从不安装 t 和 xt 目录。您可以将测试和模拟库
想要编写适用于多个 Linux 发行版的脚本。还想添加检查命令,如果不存在则安装一些软件包。因此,需要一个解决方案来检查 Dist 名称(如 Debian 或 RedHat)以为此 Dist 执行正确
我正在处理我的 Net::Prober分发,使用 dzil .从下一个版本开始,我想强制执行 perl 5.10+ 的最低要求(是 5.006),因为我使用的是命名捕获 :-) 现在我放了use 5.
您的文件夹的首选标记方法是什么,以区分原始 Assets 和使用任务运行器缩小、连接等的 Assets ?我见过一堆组合,最受欢迎的是src and dist , src and build , de
运行此命令后“wwwroot/dist”和“ClientApp/dist”文件夹有什么区别以及如何正确使用它们? dotnet publish -c Release 最佳答案 wwwroot/dist
我刚刚升级到 cabal 1.22.0.0。我创建了一个全新沙箱,并添加了另一个本地包的链接,如下所示: cabal sandbox add-source /home/amy/néal/créatúr
我有一个使用 Universal 的 Anugular 6 应用程序。 通用/服务器端渲染在本地工作。 我想知道如何将此应用程序部署到 azure 。考虑到它有两个 dist 文件夹(dist、dis
我已经提取了以前在另一台计算机上运行的现有 ASP.NET Core 应用程序。 当我在这台计算机上运行应用程序时,出现以下错误: AggregateException: One or more er
我试图将我的 Angular 5 代码迁移到 Angular 6。 执行 npm 后开始出现以下问题 npm start WARNING in ./node_modules/pdfjs-
/~/@ReMix-Run/Router/dist/router.cjs.js模块分析失败:/HOME/sharib/Desktop/Full Stack Developer Tutorial/MER
我正在尝试启动并运行 J2ME Polish 示例项目,但很困难。 我正在使用带有 J2ME Polish 插件的 Netbeans 8.0.2。 当我尝试创建 J2ME Polish 项目 ( Fi
Bable 只能生成 js 文件(在 dist 文件夹中),而不生成项目目录中的其他文件(如 html、css ..)。我正在使用“build”:“babel source -d dist”。 最佳答
我需要帮助,因为我在过去 2-3 天试图解决这个问题.. 我正在 Windows-7(64 位)机器上设置 Hadoop。这是为了尝试R与Hadoop的集成。 我按照 URL - http://www
我正在尝试了解gradle的分布。在7.3.3.4节 gradle documentation 中,有以下代码示例: task dist(type: Zip) { dependsOn spiJ
我想在分发期间复制一个装满 Assets 的文件夹到我的可执行文件旁边。我如何在 .cabal 文件(或者 Setup.hs)中表示它? 目录结构: root/ dist/ -- Genera
我正在构建一个自己的工具来编译相关的js文件(用ES6编写)并将其打包到一个包中。到目前为止,它与本地文件的预期一致,但是当我涉及公共(public)模块时,例如,react 和 redux 等,情况
我正在使用 gulp 为我的 Angular 应用构建分发 (dist) 文件夹。 所以我已经收集了所有 Controller /服务 JS 文件以及我的 CSS,现在我需要处理 bower 文件夹的
我有两个带有元组(坐标)的列表,例如: some_pt1 = [(10.76,2.9),(3.24,4.28),(7.98,1.98),(3.21,9.87)] some_pt2 = [(11.87,
注意 我是新手,刚刚通过编写这段代码“吹嘘”我的方式 我在用什么 - Angular(使用 Angular Cli) - 火力基地 问题/疑虑 当我运行“ng build --watch”时,它会创建
我的大多数 JavaScript 项目都有一个包含源文件的文件夹 lib 和一个包含项目构建的文件夹 dist。 我使用 WebStorm(很棒的 IDE!),并且 WebStorm 的代码检查器和代
我是一名优秀的程序员,十分优秀!