标签: npm-scripts

将 JS 文件与 webpack 脚本捆绑在一起?

我对 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)

javascript bundle npm webpack npm-scripts

5
推荐指数
1
解决办法
2万
查看次数

在我的 npm 脚本中运行 'cd' 命令

我想运行一个包含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.jsnode ../www/app.js不是一个选择。

更新#2:简单的测试用例

https://i.stack.imgur.com/WDS4c.jpg

unix cd npm npm-scripts

5
推荐指数
0
解决办法
5055
查看次数

如何在 npm install 结束时将消息回显到终端?

我创建了一个存储库,我想在克隆后进行克隆,你运行npm install

如何在安装结束时将显示的echo日志消息记录到终端?

echo npm npm-install npm-scripts

5
推荐指数
1
解决办法
2279
查看次数

覆盖 package.json 脚本 - NPM

有没有办法覆盖 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)

javascript node.js npm npm-scripts yarnpkg

5
推荐指数
1
解决办法
3460
查看次数

如何应用 /patches 文件夹中的所有 git .patch 文件 - npm

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说:

从邮箱应用一系列补丁 …

git git-patch npm-scripts patch-package

5
推荐指数
1
解决办法
5840
查看次数

安装后的 NPM 构建包

我用 react 和 typescript 做了一个包。由于打字稿如何处理类和接口的发布,我需要构建包并在每次更改时提交构建的文件。有没有办法告诉 npm,它必须在"npm install"或之后构建特定的包"yarn install"

我尝试添加"postinstall": "npm run build""prepare": "npm run build"但似乎安装包的项目在他自己的根目录中运行此命令,因此它会自行构建,而不仅仅是包。

我想到了这样的事情:

  1. 在项目中编码
  2. yarn add packageX
  3. yarn install
  4. packageXnpm run build在它自己的目录中运行
  5. 在 packageX 中进行更改
  6. yarn update packageX
  7. packageXnpm run build在它自己的目录中运行
  8. yarn build在项目根目录下运行
  9. 项目自行构建

有没有办法做到这一点?

感谢您的回答。

javascript npm package.json npm-scripts yarnpkg

5
推荐指数
0
解决办法
276
查看次数

如何在 Windows 和跨平台中为 git commit 消息在 npm 脚本中传递当前日期时间?

我在 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)

什么是跨平台解决方案?

你能解释导致不同结果的原因吗?

windows git terminal cross-platform npm-scripts

5
推荐指数
1
解决办法
2084
查看次数

在 NPM 中,如何获取范围内的包列表?

我们正在开发自定义包,每个包都在范围内维护。例如:

  1. @nest/common
  2. @nest/core
  3. @nest/microservice

如何获取特定范围内可用的软件包列表?例如,我想查看@nest. npm list返回所有包。

node.js npm package.json npm-scripts

5
推荐指数
1
解决办法
1779
查看次数

在运行 npm test 时,是否需要在 test 命令的开头放置“CI=true”?

我的 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)

构建时单元测试会失败吗?

testing npm package.json react-scripts npm-scripts

5
推荐指数
1
解决办法
612
查看次数

我的 React 应用程序有无法修复的高严重性警告,我该如何解决?

  • 我为 React 应用程序克隆了我的 repo。
  • npm i
  • 收到 3 个高严重性警告。
  • 在尝试修复 (npm audit fix --force) 时,我总共得到 31 个漏洞

以下是警告:

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 reactjs npm-scripts

5
推荐指数
1
解决办法
5880
查看次数