gpt4 book ai didi

javascript - 使用 Webpack 的 Rails

转载 作者:行者123 更新时间:2023-11-29 14:38:44 24 4
gpt4 key购买 nike

我正在使用 ReactOnRails 应用程序并且我有 node-modules使用 npm 安装包的文件夹.如何使这些 javascript 库在 app/assets/javascript/application.js 中可用,所以我不必例如安装 jquery在我的模块和我的 Gemfile 中?

这是我的 webpack 配置文件:

/* eslint comma-dangle: ["error",
{"functions": "never", "arrays": "only-multiline", "objects":
"only-multiline"} ] */

const webpack = require('webpack');
const path = require('path');

const devBuild = process.env.NODE_ENV !== 'production';
const nodeEnv = devBuild ? 'development' : 'production';

const config = {
entry: [
'es5-shim/es5-shim',
'es5-shim/es5-sham',
'babel-polyfill',
'./app/bundles/Home/startup/registration',
],

output: {
filename: 'webpack-bundle.js',
path: '../app/assets/webpack',
},

resolve: {
extensions: ['', '.js', '.jsx'],
alias: {
react: path.resolve('./node_modules/react'),
'react-dom': path.resolve('./node_modules/react-dom'),
},
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(nodeEnv),
},
}),
],
module: {
loaders: [
{
test: require.resolve('react'),
loader: 'imports?shim=es5-shim/es5-shim&sham=es5-shim/es5-sham',
},
{
test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
},
],
},
};

module.exports = config;

if (devBuild) {
console.log('Webpack dev build for Rails'); // eslint-disable-line no-console
module.exports.devtool = 'eval-source-map';
} else {
config.plugins.push(
new webpack.optimize.DedupePlugin()
);
console.log('Webpack production build for Rails'); // eslint-disable-line no-console
}

最佳答案

Rails 5.1 附带 webpacker并删除了默认的 jquery-rails 依赖项,但如果您愿意,您仍然可以使用它。在模板中:

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

将使用传统 Assets 管道(来自 app/assets/javascript/application.js)编译 JS。

同时

<%= javascript_pack_tag 'application' %>

将使用 webpacker 从 app/javascript/packs/application.js 编译你的 JS 模块。您可以使用以下方式触发手动模块编译:

rails webpacker:compile

关于javascript - 使用 Webpack 的 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41766519/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com