我对 webpack 非常陌生,我似乎没有找到一种像我用 Gulp 那样以非常简单的方式捆绑 JS 文件的方法。我一直在寻找,但没有找到任何直接的答案。
现在,我正在通过在我的package.json文件中使用来创建两个缩小的文件,但我希望拥有一个:
"scripts": {
"stand-alone": "concurrently 'webpack --config=webpack.config.js src/whatever.vue demos/build.min.js --output-library=whatever1' 'webpack --config=webpack.config.js src/whatever2.js demos/mixin.min.js --output-library=whatever2'",
},
Run Code Online (Sandbox Code Playgroud)
然后我的webpack.config.js样子是这样的:
const webpack = require('webpack');
module.exports = {
resolve: {
alias: {
'vue$': 'vue/dist/vue.js'
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
scss: 'vue-style-loader!css-loader!sass-loader',
js: 'babel-loader'
}
}
},
{
test: /\.js$/,
use: {
loader: 'babel-loader',
}
}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
compress: { …Run Code Online (Sandbox Code Playgroud) 我想运行一个包含cd folderName/or 的npm 脚本cd ../www/folderName/,但 npm 似乎无法运行该cd命令,也无法运行该cp命令(我安装了 cpx,它似乎可以很好地使用它)。
npm 将运行的脚本有什么解决方案可以让我更改目录吗?
谢谢!
更新:
好的,这是我需要的 npm 脚本之一cd..
"buildWWW": "babel-node tools/build.js && cpx 'dist/*.{js,map,css,ico}' '../www/public' && cd ../www/ && node app.js"
Run Code Online (Sandbox Code Playgroud)
替换cd ../www/ && node app.js为node ../www/app.js不是一个选择。
更新#2:简单的测试用例
我创建了一个存储库,我想在克隆后进行克隆,你运行npm install
如何在安装结束时将显示的echo日志消息记录到终端?
有没有办法覆盖 package.json 脚本?我无法更改 package.json 因为它会为每个人更改它。即在我们的包中我们有
"script": {
"dev": "yarn dev:build"
}
Run Code Online (Sandbox Code Playgroud)
我想为此步骤添加额外的内存,因为它在我的计算机上不断崩溃。IE
"scripts":{
"dev": "\"node --max-old-space-size=9000 yarn dev:build\""
}
Run Code Online (Sandbox Code Playgroud) TL,博士;
我正在寻找 git 命令、bash 脚本或 npm 方法(脚本)来获取.patch文件夹中的所有文件并运行
git apply --ignore-whitespace patches/{filename}
Run Code Online (Sandbox Code Playgroud)
到目前为止我尝试过的:
git am --ignore-whitespace patches/*.patch
Run Code Online (Sandbox Code Playgroud)
上下文(我将用它做什么)
目前正在进行一个大型项目,使用相当多的库。我们使用 webpack,前端是 Angular.js,后端是 Yii2。由于开发人员同时使用 Linux 和 Windows,因此该项目是在 docker 映像内编译的。
到目前为止,每当我们需要对库进行更改时,我们都会对它进行分叉并在以下位置指定分叉package.json:
"package-name":"git+https://github.com/{git-user}/{package-name}"
Run Code Online (Sandbox Code Playgroud)
而且...它有效。
我最近发现了一种可以说是更好的将补丁应用于模块的方法,那就是patch-package. 简而言之,它避免了分叉,将更改保存在.patch文件中。
然而,创建补丁文件还不够。在部署时,也需要在构建之前应用。这将转换为部署脚本中的以下行:
docker exec -it {container-name} bash -c "git apply --ignore-whitespace patches/{package-name}+{package-version}.patch"
Run Code Online (Sandbox Code Playgroud)
其中必须在运行之前运行npm run build。
而且,它再次有效。
问题
我正在寻找一种方法来自动获取patches/文件夹内的每个文件并应用它们,而无需逐一指定它们。这样,每当.patch将新的补丁推送到补丁文件夹中(或者修改现有的补丁)时,它都会在构建之前自动应用于包,而无需更改部署脚本。
我发现这个问题似乎表明
git am --ignore-whitespace patches/*.patch
Run Code Online (Sandbox Code Playgroud)
可能会成功(当然是在 docker 控制台内)。然而,man页面上git-am说:
从邮箱应用一系列补丁 …
我用 react 和 typescript 做了一个包。由于打字稿如何处理类和接口的发布,我需要构建包并在每次更改时提交构建的文件。有没有办法告诉 npm,它必须在"npm install"或之后构建特定的包"yarn install"?
我尝试添加"postinstall": "npm run build","prepare": "npm run build"但似乎安装包的项目在他自己的根目录中运行此命令,因此它会自行构建,而不仅仅是包。
我想到了这样的事情:
yarn add packageXyarn installnpm run build在它自己的目录中运行yarn update packageXnpm run build在它自己的目录中运行yarn build在项目根目录下运行有没有办法做到这一点?
感谢您的回答。
我在 Windows 10 中工作,并尝试使用 npm 脚本进行 git commit,其中包含包含提交日期和时间的消息:
"deploy": "cd dist && git add . && git commit -m \"Release at $(date)\" && git push"
Run Code Online (Sandbox Code Playgroud)
结果 git commit 消息是
在 $(date) 发布
代替
于 03/06/2019 11:43:57 发布
我在终端中运行相同的命令时得到:
git commit -m "Release at $(date)"
Run Code Online (Sandbox Code Playgroud)
什么是跨平台解决方案?
你能解释导致不同结果的原因吗?
我们正在开发自定义包,每个包都在范围内维护。例如:
@nest/common @nest/core @nest/microservice如何获取特定范围内可用的软件包列表?例如,我想查看@nest. npm list返回所有包。
我的 package.json 包含
"scripts": {
"test": "CI=true react-scripts test --env=jsdom"
}
Run Code Online (Sandbox Code Playgroud)
如果我将代码重写为有什么区别
"scripts": {
"test": "react-scripts test --env=jsdom CI=true"
}
Run Code Online (Sandbox Code Playgroud)
构建时单元测试会失败吗?
npm i以下是警告:
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/bourne@1.3.2: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated har-validator@5.1.5: …Run Code Online (Sandbox Code Playgroud) npm-scripts ×10
npm ×8
javascript ×3
package.json ×3
git ×2
node.js ×2
yarnpkg ×2
bundle ×1
cd ×1
echo ×1
git-patch ×1
npm-install ×1
reactjs ×1
terminal ×1
testing ×1
unix ×1
webpack ×1
windows ×1